MySQL查询需要很长时间才能加入

时间:2015-12-31 20:12:25

标签: php mysql join indexing

我有以下mysql查询需要很长时间

~group

我在column1上有一个索引,而在表B上的索引是(column1,timestamp,column2),timestamp,column1。

当我使用EXPLAIN时,它不使用时间戳索引。

1 个答案:

答案 0 :(得分:0)

尝试添加索引...

  ... ON `B` (`column2`,`column1`,`timestamp`)

按顺序列。

如果没有关于数据类型的任何信息,我们将猜测column2是字符类型(我们将假设该列在表B中,给出有关当前的信息索引。)

如果没有关于基数的任何信息,我们将猜测满足column2上的等式谓词(在WHERE子句中)的行数是{{1}中总行数的一小部分。 }。

我们希望MySQL使用“范围”扫描操作,使用B作为前导列的索引。

鉴于新索引是查询的“覆盖”索引,我们还希望EXPLAIN输出在Extra列中显示“Using index”。

我们还期望MySQL可以使用索引来满足GROUP BY操作和MAX聚合,而无需文件输出操作。

但是我们仍然会看到一个用于满足ORDER BY的文件输出操作。