我正在为我在 Where/Order by 中使用的所有列编制索引,我还能做些什么来加快查询速度吗?
查询非常简单,比如:
SELECT COUNT(*)
FROM TABLE
WHERE user = id
AND other_column = 'something'`
我使用的是 PHP 5,MySQL 客户端版本:4.1.22,我的表是 MyISAM。
最佳答案
与您的 DBA 交谈。运行您本地的 showplan
。对于像您的示例这样的查询,我怀疑 id
和 other_column
列上的覆盖索引会大大提高性能。 (我假设 user
是一个变量或 niladic 函数)。
一个好的通用规则是索引中的列应该按照方差的降序从左到右排列。也就是说,值变化最快的列应该是索引中的第一列,而变化最慢的列应该是索引中的最后一列。似乎违反直觉,但你去吧。查询优化器喜欢尽快缩小范围。
关于php - 对超过 100 万行的表运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5917617/