是否有一个标准的订单来为MySQL中的表创建一个覆盖索引?这意味着如果我的查询具有where子句,order by和select语句中的字段,按照什么顺序将索引字段设置为正确创建覆盖索引?涵盖索引的正确的现场订单 - MySQL
2
A
回答
3
覆盖索引采用逗号分隔列表中的列表列表。该列表从左侧开始遍历/检查。如果最左侧的列未被使用,则不使用索引。这意味着,具有列名单,如:
col_a, col_b, col_c
如果查询不包含col_a
一个参考,它不会被使用。如果订单改为:
col_c, col_b, col_a
...然后col_c
需要在查询中被引用。继续使用第二个覆盖索引列示例,col_b
或col_a
不必位于查询中,但评估按列从左至右移动。
为索引使用列引用可以是在以下章节:
- SELECT
- WHERE
- GROUP BY
- HAVING
- ORDER BY
参考:
1
MySQL Optimization 7.5.2 Multiple-Column Indexes说:
MySQL在这样一种方式,查询速度快多列索引,当你在一个WHERE指定索引的第一列中的已知量子句,即使您没有为其他列指定值。
链接页面上的例子还指出,该指数是不使用,如果你不为索引中的第一列指定值。
相关问题
- 1. 涵盖索引的用处
- 2. 涵盖索引与集群索引(数据库索引)
- 3. MySQL索引和订单
- 4. MySQL的:确定正确的索引
- 5. 什么是SQL Server中的覆盖索引和涵盖查询?
- 6. MySQL缓慢订单索引列
- 7. 正确的MySQL索引这个简单的查询
- 8. 正确的索引
- 9. MySQL索引与订购
- 10. 使用在MySQL索引正确
- 11. MySQL查询不正确使用索引?
- 12. MySQL查询优化:正确索引
- 13. MySQL的 - 搜索现场两次
- 14. 涵盖索引adventureworks 2008 R2 - 为什么不包含column WorkorderID?
- 15. 如何用MySQL过滤正确的订单(一个订单包含多行)
- 16. Mysql的覆盖索引优化
- 17. 该订单是现场宣布
- 18. MySQL的 - 检查列值(IP)出现在多个引用(订单)
- 19. 滑块涵盖大型下拉菜单
- 20. 使用索引号的订单元素
- 21. XQuery - 订单未正确订购
- 22. 修改订单场
- 23. MySQL的使用上大表不正确的索引
- 24. rownum的订单 - 它是否正确?
- 25. 什么是正确的包括订单
- 26. Rails:Applications.js当前正确的订单
- 27. 正确的方式来处理2D的z索引的3D场景(的DirectX)
- 28. 正在检索facebook订单的详情
- 29. 表的正确的索引给上市
- 30. MySql没有为几个查询选择正确的索引
因此,如果我有一个where子句,然后添加索引where子句中的字段,然后在select语句中的所有字段? – John 2011-01-26 00:45:43