Skip to content

사용자의 쿼리 실행환경은 어떻게 제공되나요?

mintaek edited this page Dec 5, 2024 · 1 revision

독립된 환경 제공

유저 간 데이터베이스 공간은 반드시 독립적이어야 합니다. 서로의 데이터가 혼합되면 정상적인 쿼리 테스트가 불가능해질 수 있기 때문입니다.

이를 위해 각 유저에게는 세션에 따라 독립적인 데이터베이스(스키마)가 제공됩니다.

image

또한, 유저는 자신의 데이터베이스에만 접근할 수 있도록 해당 데이터베이스에 대한 권한을 가진 전용 사용자가 생성됩니다.

유저가 쿼리를 실행하면, 유저 세션에 따라 데이터베이스를 생성하고, 해당 데이터베이스에 대한 접근 권한을 가진 유저를 함께 생성하여 완전히 분리된 환경을 제공합니다

흐름은 다음과 같습니다.

Flowchart

쿼리 실행시간 제공

쿼리가 실행되는 경우 사용자와의 커넥션을 생성한 이후에 SET profiling = 1; 명령어를 실행하여 profiling 옵션을 활성화합니다.

사용자로부터 받은 쿼리를 실행시킨 후에 SHOW PROFILES; 명령어를 실행하여 사용자가 입력한 쿼리가 실행되는 시간을 측정합니다.

  • SHOW PROFILES;

    해당 커넥션에서 실행시킨 쿼리들의 실행 시간을 제공합니다.

    SET profiling = 1; 로 profiling 옵션을 활성화시켜야 사용할 수 있습니다.

    mysql> show profiles;
    +----------+------------+-------------------------------------+
    | Query_ID | Duration   | Query                               |
    +----------+------------+-------------------------------------+
    |        1 | 0.02589775 | select * from uesrs                 |
    |        2 | 0.00406800 | create table users                  |
    |        3 | ...        | ...                                 |
    +----------+------------+-------------------------------------+
    
Clone this wiki locally