我有一个包含两个字段field1和field2的表“ test”,并创建了一个复合索引field1_field2(field1,field2)。
这是一个SQL:从测试力索引(field1_field2)中选择*,其中field1> 100和field2 = 2极限200
它运行得不是很好。
我对其进行了解释,发现仅索引查询使用的field1条件,field2条件被忽略....
我想知道为什么,我需要一个完美的答案
字段1> 100的数据很多,而字段2 = 2的数据很多
最佳答案
对于该查询,您需要按此顺序INDEX(field2, field1)
。将=
列放在索引的第一位。达到“范围”(例如>
)后,这就是将要使用的索引的最后一部分。
这是Index Cookbook。
关于mysql - 如何在MySQL中的范围查询中使用复合索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40213540/