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 查询json(MySQL处理JSON常见函数的使用)
- mysql语句性能分析(聊聊MySQL的COUNT*的性能)
- mysql主从复制原理详解(详解MySQL kill 指令的执行原理)
- mysql8.0.18.0安装详细教程(mysql 8.0.22 下载安装配置方法图文教程)
- mysql什么是慢查询(MySQL慢查询的坑)
- php考试复习题(php+mysql开发的最简单在线题库在线做题系统完整案例)
- mysql表锁行锁和分页锁(MySQL 不停机不锁表主从搭建)
- mysql建立分区表指令(MySQL高级特性——数据表分区的概念及机制详解)
- mysql5.5.36版本介绍(WDCP控制面板升级mysql为5.7.11的方法)
- mysql中date_format日期格式化
- mysql数据库三种模式(MySQL数据库是如何实现XA规范的)
- mysql账户访问权限(MySQL 权限控制详解)
- MySql开启远程连接
- laravel mysql 操作方式(Laravel使用原生sql语句并调用的方法)
- MySQL中查询数据库的大小
- mysql数据库延时监控(Mysql sql慢查询监控脚本代码实例)
- 元宵晚会槽点多,芒果台上来就假唱,岳云鹏不说相声改评书了(元宵晚会槽点多)
- 岳云鹏跟凤凰传奇谈心,说出了人生中最重要的三个人,这才成功(岳云鹏跟凤凰传奇谈心)
- 爱情可以当饭吃吗(爱情能当饭吃吗)
- Top 3 JSHS《运动与健康科学 英文 》跻身SCI体育学期刊世界前三(Top3JSHS运动与健康科学)
- 体坛传媒LOGO全新升级,多元发展迈出坚实步伐(体坛传媒LOGO全新升级)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
热门推荐
- iframe跨域原理(详解使用postMessage解决iframe跨域通信问题)
- pythonmysql使用教程(Python异步操作MySQL示例使用aiomysql)
- css3动画效果图(css3实现波纹特效、H5实现动态波浪效果)
- sqlserver2012知识点(SQL Server 2012 安全概述)
- 如何加快页面的访问速度
- php实现导航地图(php根据地址获取百度地图经纬度的实例方法)
- mybatis测试出现空指针(Mybatis非配置原因,导致SqlSession was not registered for synchronization异常)
- tp5框架源码分析(tp5框架无刷新分页实现方法分析)
- 微信html5页面怎么制作(HTML5中外部浏览器唤起微信分享功能的代码)
- flask快速开发框架(手把手教你使用Flask搭建ES搜索引擎预备篇)