mysql索引的类型和方法(MySQL覆盖索引的使用示例)
类别:数据库 浏览量:2904
时间:2021-10-26 11:30:05 mysql索引的类型和方法
MySQL覆盖索引的使用示例什么是覆盖索引
创建一个索引,该索引包含查询中用到的所有字段,称为“覆盖索引”。
使用覆盖索引,MySQL 只需要通过索引就可以查找和返回查询所需要的数据,而不必在使用索引处理数据之后再进行回表操作。
覆盖索引可以一次性完成查询工作,有效减少IO,提高查询效率。
使用示例
查询语句:
|
SELECT col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2; |
创建一个单列索引:
|
ALTER TABLE `test_table` ADD INDEX `idx_col1`(`col1`) USING BTREE; |
分析查询:
|
EXPLAIN SELECT SQL_NO_CACHE col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2; |
结果:对 col1 建立索引后,type 为 ref,使用到了 idx_col1 索引。
修改索引,根据查询语句,建立一个联合索引:
|
ALTER TABLE `test_table` DROP INDEX `idx_col1`; ALTER TABLE `test_table` ADD INDEX `idx_col1_col2_col3`(`col1`,`col2`,`col3`) USING BTREE; |
分析查询:
|
EXPLAIN SELECT SQL_NO_CACHE col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2; |
结果:建立联合索引后,type 为 ref,使用了 idx_col1_col2_col3 索引,Extra 为 Using index,说明使用了覆盖索引。
mysql覆盖索引和联合索引的区别
覆盖索引zhi是查询的列可dao以直接通过索引zhuan提取,比如只查询主键shu的列!或者查询联合索引的所有列或者左边开始的部分列(注意有顺序的)!
而联合索引并不一定只从索引中能获取到所有的数据,这个取决于你所查询的列。比如select * from table where ××××××;的方式就不太可能是覆盖索引。因此如果你查询的列能用到联合索引,且你查询的列都能通过联合索引获取,比如你只查询联合索引所在的列或者左边开始的部分列,这就相当于覆盖索引了。通常为了让查询能用到覆盖索引,就将要查询的多列数据设置成联合索引。
总结
到此这篇关于MySQL覆盖索引使用的文章就介绍到这了,更多相关MySQL覆盖索引内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://segmentfault.com/a/1190000039131878
您可能感兴趣
- mysql查看视图注释(详解MySQL的sql_mode查询与设置)
- MySQL主从状态检查的实现(MySQL主从状态检查的实现)
- mysql cache(MySQL取消了Query Cache的原因)
- mysql 慢查询日志
- xampp数据库表在哪个文件夹(XAMPP集成环境中MySQL数据库的使用)
- mysql中怎么删除整张表(MySQL如何优雅的删除大表实例详解)
- mysql简单查询基本语句(详解MySQL 查询语句的执行过程)
- mysql全表查询如何优化(MySQL 分组查询的优化方法)
- navicat连接mysql1045解决方法(Navicat 连接服务器端中的docker数据库的方法)
- mysql写入效率越来越差(MYSQL大量写入问题优化详解)
- apache搭建php环境(Windows上安装Apache2、PHP5、MySQL5及与Resin配合实现多系统之整合)
- mysql数据库基础练习(最全50个Mysql数据库查询练习题)
- windows7mysql服务无法启动(Windows系统下MySQL无法启动的万能解决方法)
- mysql里修改密码命令(MySQL修改账号密码方法大全小结)
- mac版本php环境搭建(在Mac OS X中配置Apache+PHP+MySQL运行环境的详细步骤)
- 适合小白入门的mysql教程索引简介(一篇带给你MySQL高性能索引)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
- 新手的勾线(新手的勾线)
- ()
- 书法欣赏 宋.志南诗《绝句》(宋.志南诗绝句)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
- 蓝色代表什么(蓝色代表什么性格的人)
热门推荐
- 护卫神主机大师教程(护卫神主机大师Linux登录账户密码忘记的解决办法)
- sqlserver数据库中锁的4种类型(SQLSERVER对加密的存储过程、视图、触发器进行解密推荐)
- linux 安装securecrt(Linux SecureCRT显示乱码解决方案)
- 解释mysql慢查询(MySQL Threads_running飙升与慢查询的相关问题解决)
- python散点图(python scatter散点图用循环分类法加图例)
- cuda安装包下载慢(Manjaro安装CUDA实现教程解析)
- flow布局(详解为什么设置overflow为hidden可以清除浮动带来的影响)
- docker多个端口怎么分(Docker多个容器不能有相同端口号的处理方案)
- php单例设计方法(php设计模式之单例模式用法经典示例分析)
- asp.net lambda表达式
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9