我有与mysql数据库相关的问题。我是管理员,我面临一个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) 客户端说他们正在使用Index,所以我运行命令来检查索引。
我得到了后续输出。这是否意味着他们在使用索引。
+--------------+------------+----------+--------------+-------------+-----------+------------+----------+--------+++-------------+-----------+-------------+----------+--------+------+------------+---------+ _ mcms_tenders _0_0___~___-+--------------+------------+----------+--------------+-------------+-----------+-+----------+--------+------+------------+---------+
发布于 2012-09-10 14:00:09
调整这样的查询性能的正常方法是在department_id上创建一个索引。
然而,这假定投标书实际上是一张表格,而不是一种观点。您应该确认这一点,因为问题可能在视图中。
此外,根据您的描述,问题可能是从服务器到最终用户的连接。我将尝试在服务器上本地运行查询(或者严格检查服务器上的执行时间),以确定查询是否真的花费了那么长时间。
发布于 2012-09-10 09:38:15
“当服务器得到一定数量的点击量时”
定义“某个数字”。当数据库被更多地使用时,读取数据库的速度会更慢,这是有意义的。此外,MySQL有一个查询缓存,当对数据进行更改时,该缓存将完全失效。因此,每当有人在此表中插入、删除或修改记录时,下一次查询将变得更慢,因为表日期仍未显示。
但是这样的查询的11秒非常慢,所以要么负载太高,要么硬件不足或损坏,要么数据库缺少索引(我一开始总是忘记提到这一点,因为我假设添加索引对于任何使用数据库的人来说都是第二种性质)。
https://stackoverflow.com/questions/12348912
复制相似问题