我有以下mysql查询需要很长时间
~group
我在column1上有一个索引,而在表B上的索引是(column1,timestamp,column2),timestamp,column1。
当我使用EXPLAIN时,它不使用时间戳索引。
答案 0 :(得分:0)
尝试添加索引...
... ON `B` (`column2`,`column1`,`timestamp`)
按顺序列。
如果没有关于数据类型的任何信息,我们将猜测column2
是字符类型(我们将假设该列在表B
中,给出有关当前的信息索引。)
如果没有关于基数的任何信息,我们将猜测满足column2
上的等式谓词(在WHERE子句中)的行数是{{1}中总行数的一小部分。 }。
我们希望MySQL使用“范围”扫描操作,使用B
作为前导列的索引。
鉴于新索引是查询的“覆盖”索引,我们还希望EXPLAIN输出在Extra列中显示“Using index”。
我们还期望MySQL可以使用索引来满足GROUP BY操作和MAX聚合,而无需文件输出操作。
但是我们仍然会看到一个用于满足ORDER BY的文件输出操作。