【发布时间】:2012-09-03 03:44:19
【问题描述】:
我遇到了与 mysql 数据库相关的问题。我是 linux 网络服务器管理员,我面临 mysql 查询的问题。数据库非常小。我尝试在日志中进行跟踪,发现查询至少需要 5 秒才能响应。网站的第一页来自数据库。客户正在使用 cms。当服务器获得一定数量的命中时,数据库服务器开始非常缓慢地给出响应,等待时间从 5 秒增加到几秒。
我检查了慢查询日志
{
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)
客户说他们正在使用索引,所以我运行命令来检查索引。
我得到以下输出。这是否意味着他们正在使用索引。
+--------------+------------+---------+------- -------+-------------+------------+------------+--- -------+--------+------+------------+---------+ |表 |非唯一 |键名 | Seq_in_index |列名 |整理 |基数|子部分 |包装 |空 |索引类型 |评论 | +--------------+------------+----------+--------- ----+-------------+------------+-------------+-- -----+--------+------+------------+---------+ | mcms_tenders | 0 |初级 | 1 |编号 |一个 | 4264 |空 |空 | | BTREE | | +--------------+------------+----------+--------- ----+-------------+------------+-------------+-- -----+--------+------+------------+---------+
【问题讨论】:
-
尝试使用 EXPLAIN 并检查查询是否使用索引等。
-
改用
EXPLAIN EXTENDED。为您提供更多信息。 -
@j0nes@Rene Pot+----+-------------+--------+------+-- ----------+------+---------+------+------+----- --------+ |编号 |选择类型 |表|类型 |可能的键 |关键 | key_len |参考 |行 |额外 | +----+-------------+--------+------+-------------- -+--------+---------+------+------+-------------+ | 1 |简单 |招标 |全部 |空 |空 |空 |空 | 3542 |使用位置 | +----+-------------+--------+------+-------------- -+------+---------+------+------+-------------+ 1 行设置,1 个警告(0.00 秒)
-
@j0nes @Rene Pot 非常感谢您的帮助
标签: mysql