我有关于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