如何在mysql

时间:2016-10-24 08:10:25

标签: mysql indexing composite-index

我有一个表“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

的大量数据

1 个答案:

答案 0 :(得分:1)

对于那个查询,您需要{em>那个顺序中的INDEX(field2, field1)。将=列放在索引的第一位。一旦你达到“范围”(例如>),那就是将要使用的索引的最后一部分。

这是一个Index Cookbook