首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql查询时间过长

问Mysql查询时间过长
EN

Stack Overflow用户
提问于 2012-09-10 09:32:55
回答 2查看 1.6K关注 0票数 1

我有与mysql数据库相关的问题。我是管理员,我面临一个mysql查询的问题。数据库很小。我试图跟踪日志,发现查询至少需要5秒才能响应。网站的第一页来自数据库。客户正在使用cms。当服务器得到一定数量的命中时,数据库服务器开始缓慢地给予响应,等待时间从5秒增加到几秒。

我检查了慢速查询日志

代码语言:javascript
复制
{
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结果:

代码语言:javascript
复制
+----+-------------+--------+------+---------------+------+---------+------+-‌-----+-------------+
| 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___~___-+--------------+------------+----------+--------------+-------------+-----------+-+----------+--------+------+------------+---------+

EN

回答 2

Stack Overflow用户

发布于 2012-09-10 14:00:09

调整这样的查询性能的正常方法是在department_id上创建一个索引。

然而,这假定投标书实际上是一张表格,而不是一种观点。您应该确认这一点,因为问题可能在视图中。

此外,根据您的描述,问题可能是从服务器到最终用户的连接。我将尝试在服务器上本地运行查询(或者严格检查服务器上的执行时间),以确定查询是否真的花费了那么长时间。

票数 1
EN

Stack Overflow用户

发布于 2012-09-10 09:38:15

“当服务器得到一定数量的点击量时”

定义“某个数字”。当数据库被更多地使用时,读取数据库的速度会更慢,这是有意义的。此外,MySQL有一个查询缓存,当对数据进行更改时,该缓存将完全失效。因此,每当有人在此表中插入、删除或修改记录时,下一次查询将变得更慢,因为表日期仍未显示。

但是这样的查询的11秒非常慢,所以要么负载太高,要么硬件不足或损坏,要么数据库缺少索引(我一开始总是忘记提到这一点,因为我假设添加索引对于任何使用数据库的人来说都是第二种性质)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12348912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档