我有一个包含两个字段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/

10-13 08:48