我有關於mysql數據庫的問題。我是Linux的web服務器管理員,我面臨着一個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);
}
在日誌中的每一行是相同的只是有在查詢的時間差異。 有什麼辦法可以調整性能嗎?
更新:這裏是EXPLAIN
結果:
+----+-------------+--------+------+---------------+------+---------+------+------+-------------+
| 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)
客戶是說他們使用的指數,所以我跑的命令檢查索引。
我得到以下輸出。這是否意味着他們正在使用索引。
+ -------------- + ------------ + ---------- + ------ -------- + ------------- ----------- + + ------------ + - -------- + -------- + ------ + ------------ + --------- + |表| Non_unique | Key_name | Seq_in_index | Column_name |整理|基數| Sub_part |包裝|空| Index_type |評論| + -------------- + ------------ + ---------- + --------- ----- + ------------- ----------- + ------------- + + ---- ------ + -------- + ------ + ------------ + --------- + | mcms_tenders | 0 | PRIMARY | 1 | id | A | 4264 | NULL | NULL | | BTREE | | + -------------- + ------------ + ---------- + --------- ----- + ------------- ----------- + ------------- + + ---- ------ + -------- + ------ + ------------ + --------- +
嘗試使用EXPLAIN並檢查查詢是否使用索引等。 – j0nes
使用'EXPLAIN EXTENDED'來代替。爲您提供更多信息。 –
@ j0nes @ Rene Pot + ---- + ------------- + -------- + ------ + --------- ------ + ------ + --------- + ------ + ------ + ------------ - + | id | select_type |表| |鍵入| possible_keys |鍵| key_len | ref |行|額外| + ---- + ------------- + -------- + ------ + ------------- - + ------ + --------- + ------ + ------ + ------------- + | 1 | SIMPLE |招標| ALL | NULL | NULL | NULL | NULL | 3542 |使用where | + ---- + ------------- + -------- + ------ + ------------- - + ------ + --------- + ------ + ------ + ------------- + 1行集,1個警告(0.00秒) – aditya