1

我有一个包含两个字段 field1 和 field2 的表“测试”,并创建了一个复合索引 field1_field2(field1, field2)。这是一个 sql: select * from test force index(field1_field2) where field1 > 100 and field2 = 2 limit 200

它运行得不是很好。我解释了一下,发现只有索引查询使用的field1条件,field2条件被忽略了....

我想知道为什么,我需要一个完美的答案

有很多 field1 > 100 的数据和很多 field2 = 2 的数据

4

1 回答 1

3

对于查询,您需要INDEX(field2, field1), 按顺序。将=列首先放在索引中。一旦您点击“范围”(例如>),这就是将要使用的索引的最后一部分。

这是一个索引食谱

于 2016-10-26T05:54:05.660 回答