MySQL 테이블 생성 속도가 느리다


10

내 MySQL 데이터베이스 중 하나에서 간단한 테이블을 만드는 데는 시간이 오래 걸립니다.

mysql> CREATE TABLE blah (id BIGINT UNSIGNED NOT NULL PRIMARY KEY);
Query OK, 0 rows affected (16.58 sec)

기계가 유휴 상태입니다.

01:21:26 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
01:21:27 PM       all      0.50      0.00      0.21      0.00      0.00     99.29

이것을 조사하는 방법에 대한 아이디어가 있습니까?

편집 : DTest의 조언 에 따라 실행 프로필입니다.

mysql> SHOW PROFILE FOR QUERY 1;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000044 |
| checking permissions | 0.000024 |
| creating table       | 8.668129 |
| After create         | 0.000014 |
| query end            | 0.000005 |
| freeing items        | 0.000028 |
| logging slow query   | 0.000004 |
| logging slow query   | 0.000206 |
| cleaning up          | 0.000006 |
+----------------------+----------+

@Phil 16GB의 메모리가있는 물리적 시스템.
Adam Matan

@Phil MySQL 작업이 많은 프로덕션 서버이므로 디스크가 유휴 상태가되어서는 안됩니다.
Adam Matan

답변:


10

시간이 오래 걸리는 것에 대한 아이디어를 얻기 위해 프로파일 링 을 켭니다 . mysql의 CLI를 사용하는 예 :

SET profiling = 1;
CREATE TABLE blah (id BIGINT UNSIGNED NOT NULL PRIMARY KEY);
SET profiling = 1;

다음과 같은 응답을 받아야합니다.

mysql> SHOW PROFILES;
| Query_ID | Duration   | Query |
+----------+------------+-------------------------------------------------------------+
|        1 | 0.00913800 | CREATE TABLE blah (id BIGINT UNSIGNED NOT NULL PRIMARY KEY) |
+----------+------------+-------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SHOW PROFILE FOR QUERY 1;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000071 |
| checking permissions | 0.000007 |
| Opening tables       | 0.001698 |
| System lock          | 0.000043 |
| creating table       | 0.007260 |
| After create         | 0.000004 |
| query end            | 0.000004 |
| closing tables       | 0.000015 |
| freeing items        | 0.000031 |
| logging slow query   | 0.000002 |
| cleaning up          | 0.000003 |
+----------------------+----------+
11 rows in set (0.00 sec)

1
@AdamMatan 당신은 프로파일 문서를 읽을해야합니다 경우지만, 쿼리의 프로필을 보여주는 다른 플래그가 CPU, BLOCK IO'만들기 테이블'무대에서 당신을 도울 수있는 등.
데릭 다우니
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.