php - 对超过 100 万行的表运行查询

标签 php mysql sql aggregate-functions

我正在为我在 Where/Order by 中使用的所有列编制索引,我还能做些什么来加快查询速度吗?

查询非常简单,比如:

SELECT COUNT(*) 
  FROM TABLE 
 WHERE user = id 
   AND other_column = 'something'`

我使用的是 PHP 5,MySQL 客户端版本:4.1.22,我的表是 MyISAM。

最佳答案

与您的 DBA 交谈。运行您本地的 showplan。对于像您的示例这样的查询,我怀疑 idother_column 列上的覆盖索引会大大提高性能。 (我假设 user 是一个变量或 niladic 函数)。

一个好的通用规则是索引中的列应该按照方差的降序从左到右排列。也就是说,值变化最快的列应该是索引中的第一列,而变化最慢的列应该是索引中的最后一列。似乎违反直觉,但你去吧。查询优化器喜欢尽快缩小范围。

关于php - 对超过 100 万行的表运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5917617/

相关文章:

php - 在 SELECT 语句中绑定(bind)排序属性

c# - SQL 主键生成

Mysql 根据特定列查询不同计数

mysql - 如何在SQL查询中使用索引?

mysql - 连接表使值加倍

php - 使用 jquery 遍历 json 数组

php - 使用 PHP 库进行 FFMPEG 音频合并

php - 如何从基于 utm_source 和 utm_medium 的 Google 分析 API 获取数据?

mysql - 修复 mysql 函数

mysql - 如何将多行变成具有不同列的单行