Mysql中的联合索引、前缀索引、覆盖索引
来源:互联网 发布:仿百度搜索源码 编辑:程序博客网 时间:2024/05/17 03:03
Mysql中的联合索引、前缀索引、覆盖索引
索引
索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。
联合索引
又名复合索引,由两个或多个列的索引。它规定了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));
前缀索引
对于列的值较长,比如BLOB、TEXT、VARCHAR,就必须建立前缀索引,即将值的前一部分作为索引。这样既可以节约空间,又可以提高查询效率。但无法使用前缀索引做 ORDER BY 和 GROUP BY,也无法使用前缀索引做覆盖扫描。
# 语法 ALTER TABLE table_name ADD KEY(column_name(prefix_length)); # 示例 ALTER TABLE city ADD KEY(cityname(7))
覆盖索引
跟联合索引有点类似,就是在查询t的时候只用去读取索引而取得数据,无需进行二次查询相关表。这样的索引的叶子节点上面也包含了他们索引的数据。
判断标准:使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询。
1 0
- Mysql中的联合索引、前缀索引、覆盖索引
- MySQL的联合索引和覆盖索引
- MySQL中的联合索引
- 因为前缀索引问题导致mysql无法使用覆盖索引
- mysql 复合索引,联合索引
- 聚集索引、辅助索引、覆盖索引、联合索引
- 最左前缀 联合索引
- mysql 前缀索引
- 认识mysql前缀索引
- MySQL 前缀索引
- Mysql前缀索引
- mysql前缀索引
- mysql前缀索引
- MYSQL前缀索引
- mysql前缀索引
- Mysql前缀索引
- 关于MYSQL中的多列索引(联合索引)
- mysql 联合索引
- 免费wifi帮助文档
- C# 数据类型
- sdut 3469 深度优先搜索练习之神奇的矩环
- 181. Employees Earning More Than Their Managers
- Java初始化顺序
- Mysql中的联合索引、前缀索引、覆盖索引
- LIBSVM在Matlab下的使用
- python函数错误
- 腾讯课堂笔记day1+day2
- docker实用命令--未完待续
- 产品经理之互联网产品的常见商业模式
- java异常的总结
- linux下安装Nginx
- 传统实现线程的俩种方式-笔记整理1