相同限制的 MySQL SELECT 查询越来越慢
Posted
技术标签:
【中文标题】相同限制的 MySQL SELECT 查询越来越慢【英文标题】:MySQL SELECT queries of same limits getting slower and slower 【发布时间】:2013-09-06 23:03:00 【问题描述】:我在我的网站上使用 php 和 mysql,并且必须汇总一些指标来为客户生成报告。这些指标可以在一个 400 万行的表中找到,该表使用 MyISAM 引擎并分布在 12 个 PARTITIONS 中。
在 PHP 循环(for 循环)中,对于每次迭代,我检索 1000 行与特定 id 匹配的行
id = X OR id =Y OR id = Z
(我没有对 UNION 1 id UNION 2 等临时表使用任何内部连接,因为它有点慢,可能是因为分区选项依赖于 id 的哈希)。
问题是查询越来越慢。它可能是由逐渐缓存的东西引起的,但我不知道是什么。
任何帮助都非常宝贵,非常感谢。
【问题讨论】:
您的大表中的行数是否随着时间的推移而增长?您多次搜索的id
列上是否有索引? (OR
子句会导致多次搜索。)id
是主键还是唯一键?
矩阵的聚合...如果仍然存在与其他表相关的连接,是否还有其他我们没有看到的东西。您能否发布导致问题/延迟的查询。
id是主键,没有join。作为一个更简单的解决方案并出于长期目的,我现在正在使用 Hadoop!问题解决了!感谢大家的帮助!
【参考方案1】:
当您使用从索引深处开始的 LIMIT 时,MySQL 会变得非常慢。查看这篇文章以优化后期行查找:
http://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/
【讨论】:
无论如何,如果链接失效,您可以使用该链接的相关摘录来更新您的答案? 刚刚检查过,是的,我认为是问题所在,谢谢!我开发了另一种解决方案,谜团解开了!以上是关于相同限制的 MySQL SELECT 查询越来越慢的主要内容,如果未能解决你的问题,请参考以下文章