如何解决创建复合数据库索引时的列顺序
| 创建复合数据库索引时,什么会影响字段的顺序? 例如,假设我要基于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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。