문제

느린 쿼리를 로깅하지 않고 느린 쿼리를 확인하는 다른 방법이 있습니다.바쁜 서버가 메모리와 I / O를 저장하기 위해 많이 로그를 할 여유가 없습니다.그런 다음 느린 쿼리가 있는지 확인할 수있는 다른 방법이 있습니까?우리는 쿼리의 프로파일 링을 수행 할 수 있지만 여전히 시간과 메모리의 대부분을 취하는 쿼리를 식별하기 위해 정확히 무엇을 할 수 있는지 확실하지 않습니다.

은 MySQL 관리를 시작하고이를 처리하는 방법을 확실하지 않습니다.어떤지도가 높이 평가 될 것입니다.

다른 팁

예를 들어 10 초마다 명령문을 트리거하는 스크립트의 루프에서 다음 명령문을 실행할 수 있습니다.

mysql -e 'SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where time>10 and command<>"Sleep"'

사용자가 쿼리에 따라 더 많은 정보를 제공하도록 사용자 정의 할 수 있습니다.

mysql> desc INFORMATION_SCHEMA.PROCESSLIST;
+---------------+---------------------+------+-----+---------+-------+
| Field         | Type                | Null | Key | Default | Extra |
+---------------+---------------------+------+-----+---------+-------+
| ID            | bigint(21) unsigned | NO   |     | 0       |       |
| USER          | varchar(16)         | NO   |     |         |       |
| HOST          | varchar(64)         | NO   |     |         |       |
| DB            | varchar(64)         | YES  |     | NULL    |       |
| COMMAND       | varchar(16)         | NO   |     |         |       |
| TIME          | int(7)              | NO   |     | 0       |       |
| STATE         | varchar(64)         | YES  |     | NULL    |       |
| INFO          | longtext            | YES  |     | NULL    |       |
| TIME_MS       | bigint(21)          | NO   |     | 0       |       |
| ROWS_SENT     | bigint(21) unsigned | NO   |     | 0       |       |
| ROWS_EXAMINED | bigint(21) unsigned | NO   |     | 0       |       |
+---------------+---------------------+------+-----+---------+-------+
11 rows in set (0.00 sec)
.

동일한 쿼리를 여러 번 저장하지 않으려면 쿼리의 해시를 고유 키로 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top