为什么在单列索引的基础上还需要组合索引?  

  select product_id from orders where order_id in (123, 312, 223, 132, 224);

    我们当然每个字段都可以创建索引 在不建立组合索引的前提下 mysql只会用到其中一个最有效率的索引 ,效率平庸

    但当我们建了组合索引后 (Btree索引结构下)当我们建立了组合索引prodect_id,order_id后像上面的语句  我们可以直接根据order_id查找到
product_id,不用再取文件中取product_id

组合索引的最左原则是什么?

      组合索引,其实是相当于分别建立了下面三组组合索引:
  1. usernname,city,age
  2. usernname,city
  3. usernname
为什么没有 city,age这样的组合索引呢?这是因为MySQL组合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个SQL就会用到这个组合索引:
  1. SELECT * FROM mytable WHREE username="admin" AND city="郑州"
  2. SELECT * FROM mytable WHREE username="admin"
而下面几个则不会用到:
  1. SELECT * FROM mytable WHREE age=20 AND city="郑州"
  2. SELECT * FROM mytable WHREE city="郑州"

最新文章

  1. phpexcel 字符串转码
  2. Ubuntu 14.04 64bit 安装tensorflow(GPU版本)
  3. 教你开发asp.net的单点登录系统
  4. LINQ to SQL语句(2)之Select/Distinct
  5. 百度地图API 海量点 自定义添加信息
  6. Python单元测试框架之pytest -- fixtures
  7. LIST-PROCESSING用法 ABAP任意时刻进行List输出_SAP
  8. ArduinoYun的电源插座
  9. MySQL语句45道练习题及答案
  10. asp.net中的mysql传参数MySqlParameter
  11. wpf中数据绑定(Datacontext)的应用
  12. UEditor上传图片到七牛C#(后端实现)
  13. XSS攻击过滤处理
  14. if --else的注意点
  15. 《Python》进程之间的通信(IPC)、进程之间的数据共享、进程池
  16. django 错误之 ImportError: No module named **
  17. JVisualVM远程监控
  18. [LeetCode&Python] Problem 561. Array Partition I
  19. 旧文备份:CANopen协议中SDO服务
  20. wpf企业应用之数据校验

热门文章

  1. PriorityQueue 优先队列的实现
  2. PyQt(Python+Qt)学习随笔:QListWidget的信号简介
  3. 第14.6节 使用Python urllib.request模拟浏览器访问网页的实现代码
  4. 分布式存储系统-HDFS
  5. 开源性能监控分析工具glowroot
  6. 步步为营,打造CQUILib UI框架库
  7. Layui事件监听(表单和数据表格)
  8. 服务启动Apache服务,错误Parent: child process exited with status 3 -- Aborting.解决
  9. 【JAVA基础】静态方法
  10. 【Tomcat 源码系列】Tomcat 整体结构