쿼리 성능 분석
쿼리 성능 향상을 위해 서버 변수를 튜닝합니다. 심층 분석은 복잡하지만, MySQL 의 내장 쿼리 프로파일러를 사용하여 쿼리 실행 시간에 대한 기본적인 측정을 할 수 있습니다. 이 단계에서는 테스트 테이블을 생성하고, 데이터를 삽입하고, 간단한 쿼리를 분석합니다.
먼저 MySQL 서버에 연결합니다.
sudo mysql -u root
testdb라는 새 데이터베이스를 생성하고 해당 데이터베이스로 전환합니다.
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
다음으로 샘플 데이터를 저장할 employees라는 테이블을 생성합니다.
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary INT
);
employees 테이블에 몇 개의 레코드를 삽입합니다.
INSERT INTO employees (name, department, salary) VALUES
('Alice', 'Sales', 60000),
('Bob', 'Engineering', 80000),
('Charlie', 'Sales', 65000),
('David', 'Marketing', 55000);
이제 세션에 대한 쿼리 프로파일러를 활성화합니다. 이렇게 하면 이후 쿼리에 대한 성능 데이터가 기록됩니다.
SET profiling = 1;
분석하려는 쿼리를 실행합니다. 예를 들어, 'Sales' 부서의 모든 직원을 찾아보겠습니다.
SELECT * FROM employees WHERE department = 'Sales';
성능 결과를 보려면 SHOW PROFILES 명령을 사용합니다. 이 명령은 프로파일링을 활성화한 이후 실행한 쿼리와 해당 실행 시간을 나열합니다.
SHOW PROFILES;
출력은 다음과 유사하게 표시되며, 각 쿼리의 실행 시간을 초 단위로 보여줍니다.
+----------+------------+-------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------------------------------+
| 1 | 0.00038500 | SELECT * FROM employees WHERE department = 'Sales' |
+----------+------------+-------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
이 Duration 열은 쿼리 성능의 기준선을 제공합니다. 실제 시나리오에서는 이 도구를 사용하여 훨씬 더 큰 데이터 세트에서 구성 변경 전후의 쿼리 속도를 비교할 수 있습니다.
프로파일러를 사용하여 쿼리를 성공적으로 분석했습니다. 이제 MySQL 셸을 종료할 수 있습니다.
exit;