创建复合数据库索引时的列顺序

问题描述

| 创建复合数据库索引时,什么会影响字段的顺序? 例如,假设我要基于DATE,PRICE,VOLUME创建一个复合索引,这会影响我是否创建 日期,价格,数量 数量,日期,价格 。 。 。 大概一个将更适合于特定类型的查询,但是我不知道哪个查询。     

解决方法

        如果按
DATE
,or1ѭ或
DATE,PRICE,VOLUME
过滤(或搜索)记录,则将使用第一个。如果您过滤记录(例如,按filter3 records),则不会使用它。第二个查询将用于查询条件包括“ 3”或“ 5”或“ 6”的查询。 更准确地说,当您在
GROUP BY
ORDER BY
中使用索引列时,也可以使用索引。 一些例子: 索引1(
DATE,VOLUME
) 索引2(
VOLUME,DATE,PRICE
SELECT * FROM table1 WHERE `DATE` = \'2011-10-01\'; //Index 1 used,Index 2 not used
SELECT * FROM table1 WHERE `VOLUME` = \'111\'; //Index 1 not used,Index 2 used