索引

索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

联合索引

又名复合索引,由两个或多个列的索引。它规定了mysql从左到右地使用索引字段,对字段的顺序有一定要求。一个查询可以只使用索引中的一部分,更准确地说是最左侧部分(最左优先)。如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

CREATE TABLE test(a INT, b INT, c INT, KEY(a, b, c));
  • 1

前缀索引

对于列的值较长,比如BLOB、TEXT、VARCHAR,就必须建立前缀索引,即将值的前一部分作为索引。这样既可以节约空间,又可以提高查询效率。但无法使用前缀索引做 ORDER BY 和 GROUP BY,也无法使用前缀索引做覆盖扫描。

 # 语法
ALTER TABLE table_name ADD KEY(column_name(prefix_length));
# 示例
ALTER TABLE city ADD KEY(cityname(7))
  • 1
  • 2
  • 3
  • 4

覆盖索引

跟联合索引有点类似,就是在查询t的时候只用去读取索引而取得数据,无需进行二次查询相关表。这样的索引的叶子节点上面也包含了他们索引的数据。

判断标准:使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询。

最新文章

  1. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)
  2. Flask最佳实践
  3. strace命令跟踪进程
  4. 【循序渐进学Python】8.面向对象的核心——类型(下)
  5. 关闭窗体后,利用StreamWriter保存控件里面的数据
  6. [转载]关于AutoCAD.NET的辅助方法
  7. UpdateData(false) and UpdateData(true)
  8. bzoj 3207 花神的嘲讽计划Ⅰ(哈希法+主席树)
  9. 一步步学习NHibernate(4)——多对一,一对多,懒加载(1)
  10. 解决embed标签显示在div上层【转藏】
  11. Grails重定向以及Render、Session的使用
  12. .Net平台-MVP模式初探(一)
  13. x86汇编语言实践(2)
  14. 美团App用户界面分析
  15. Module loader:模块加载器
  16. mongodb之 3.4.0 mongodb sharing 副本集群搭建
  17. 树莓派安装centos7
  18. 【SPL标准库专题(5)】 Datastructures:SplStack & SplQueue
  19. CSS marging相关
  20. shell将字符串分隔成数组

热门文章

  1. HDU 1027 G - Can you answer these queries?
  2. SQL2000,2005,2008安装在一台机子上
  3. 关于rabbitmq的消息路由的同步问题
  4. H5的storage(sessionstorage&localStorage)简单存储删除
  5. ABAP自定义功能函数
  6. 使用 Kendo UI 库实现对象的继承
  7. Android 读取excel 文件
  8. 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:2.技术简介之MinaFilter(1)
  9. 如何用Windows PowerShell替换命令提示符
  10. JavaScript_7_运算符