通过覆盖索引优化sql查询

时间:2014-05-15 13:14:33

标签: mysql indexing

查询:

SELECT a, b, c FROM table WHERE a = .. and b like 'example%' and c = '..'

此查询是否使用索引(a,b,c)或(a,b)?

1 个答案:

答案 0 :(得分:0)

对于甚至开始帮助此查询的覆盖索引,它必须是

a,c,b

这是因为查询需要a和c的特定单个值以及b的值范围(LIKE 'string%')。

复合BTREE索引随机访问特定的a,c值和起始b值。它扫描(在所谓的紧密扫描中)到最后符合条件的b值。

请注意

c,a,b

也会奏效。

相关问题