mysql 데이터베이스와 관련된 문제가 있습니다. 나는 리눅스 웹 서버 관리자이고 나는 mysql 쿼리에 문제가있다. 데이터베이스가 매우 작습니다. 로그에서 추적을 시도했는데 쿼리에 최소 5 초가 걸리는 것으로 나타났습니다. 사이트의 첫 번째 페이지가 데이터베이스에서 제공됩니다. 클라이언트가 CMS를 사용 중입니다. 서버가 히트 수를 얻으면 데이터베이스 서버가 응답을 매우 천천히 시작하고 대기 시간이 5 초에서 몇 초로 증가합니다.MySQL 쿼리에 너무 많은 시간이 걸립니다
내가 확인 슬로우 쿼리 로그
{
Query_time: 11.480138 Lock_time: 0.003837 Rows_sent: 921 Rows_examined: 3333
SET timestamp=1346656767;
SELECT `Tender`.`id`,
`Tender`.`department_id`,
`Tender`.`title_english`,
`Tender`.`content_english`,
`Tender`.`title_hindi`,
`Tender`.`content_hindi`,
`Tender`.`file_name`,
`Tender`.`start_publish`,
`Tender`.`end_publish`,
`Tender`.`publish`,
`Tender`.`status`,
`Tender`.`createdBy`,
`Tender`.`created`,
`Tender`.`modifyBy`,
`Tender`.`modified`
FROM `mcms_tenders` AS `Tender`
WHERE `Tender`.`department_id` IN (31, 33, 32, 30);
}
로그의 모든 라인은 쿼리 시간 DIFF가 동일합니다. 성능을 조정할 방법이 있습니까?
업데이트
: 그래서 색인을 확인하는 명령을 실행+----+-------------+--------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | Tender | ALL | NULL | NULL | NULL | NULL | 3542 | Using where |
+----+-------------+--------+------+---------------+------+---------+------+------+-------------+
1 row in set, 1 warning (0.00 sec)
클라이언트가 인덱스를 사용 말하고있다 : 여기는 EXPLAIN
결과입니다.
다음 출력이 있습니다. 그것은 그들이 Indexing을 사용하고 있다는 것을 의미합니다.
+ -------------- + ------------ + ---------- + ------ -------- + ------------- + ----------- + ------------ + - -------- + -------- + ------ + ------------ + --------- + | 표 | Non_unique | Key_name | Seq_in_index | Column_name | 데이터 정렬 | 카디널리티 | Sub_part | 포장 된 | Null | Index_type | 코멘트 | + -------------- + ------------ + ---------- + --------- ----- + ------------- + ----------- + ------------- + ---- ------ + -------- + ------ + ------------ + --------- + | mcms_tenders | 0 | PRIMARY | 1 | 이드 | A | 4264 | NULL | NULL | | BTREE | | + -------------- + ------------ + ---------- + --------- ----- + ------------- + ----------- + ------------- + ---- ------ + -------- + ------ + ------------ + --------- +
EXPLAIN을 사용하여 쿼리가 인덱스 등을 사용하는지 확인하십시오. – j0nes
대신'EXPLAIN EXTENDED'를 사용하십시오. 더 많은 정보를 제공합니다. –
@ j0nes @ Rene Pot + ---- + ------------- + -------- + ------ + --------- ------ + ------ + --------- + ------ + ------ + ------------ - + | 이드 | select_type | 테이블 | 유형 | possible_keys | 열쇠 | key_len | 심판 | 행 | 추가 | + ---- + ------------- + -------- + ------ + ------------- - + ------ + --------- + ------ + ------ + ------------- + | 1 | 단순 | 텐더 | 전체 | NULL | NULL | NULL | NULL | 3542 | 사용 위치 | + ---- + ------------- + -------- + ------ + ------------- - + ------ + --------- + ------ + ------ + ------------- + 1 1 행 (0.00 초) – aditya