我有一个表“test”,其中包含两个字段field1和field2,并创建了一个复合索引field1_field2(field1,field2)。 这里是一个sql:select * from test force index(field1_field2)where field1> 100和field2 = 2限制200
它并没有很好地运行。 我解释了它,发现只有index1条件使用的field1条件,field2条件被忽略....
我想知道为什么,我需要一个完美的答案
有很多数据,其中field1> 100和field2 = 2
的大量数据答案 0 :(得分:1)
对于那个查询,您需要{em>那个顺序中的INDEX(field2, field1)
。将=
列放在索引的第一位。一旦你达到“范围”(例如>
),那就是将要使用的索引的最后一部分。
这是一个Index Cookbook。