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中ESCAPE关键字的用法详解)
- mysql大量数据怎么处理(MySQL删除和插入数据很慢的问题解决)
- mysql索引优化有哪些(MySQL如何基于Explain关键字优化索引功能)
- mysql数据库如何删除重复记录(mysql数据库删除重复数据只保留一条方法实例)
- mysql实现数据的备份的命令(Windows下MySQL定时备份脚本的实现)
- phpmysql网站开发入门与提高(PHP+MySQL+sphinx+scws实现全文检索功能详解)
- centos7可以装mysql吗(详解腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题)
- mysql的复制原理(浅析MySQL的WriteSet并行复制)
- mysql索引的机制(Mysql索引选择以及优化详解)
- 如何排查mysql存储过程的问题(Mysql修改存储过程相关权限问题)
- mysql的uuid说明(MySQL GTID全面总结)
- mysql的binlog日志详解(MySQL 有关MHA搭建与切换的几个错误log汇总)
- mysql的事务隔离级别怎么实现(mysql、oracle默认事务隔离级别的说明)
- mysql利用数据库日志恢复数据(MySQL通过binlog恢复数据)
- mysql常见错误分析(分析MySQL抛出异常的几种常见解决方式)
- mysql语句性能分析(聊聊MySQL的COUNT*的性能)
- 东南亚安全吗(好不好挣钱)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
- 一窗通办政务服务小品剧本(一窗通办政务服务小品剧本)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
热门推荐
- python 获取数组任意组合(Python实现求两个数组交集的方法示例)
- 解释mysql慢查询(MySQL Threads_running飙升与慢查询的相关问题解决)
- php中isset函数有什么功能(PHP中的empty、isset、isnull的区别与使用实例)
- apache怎么安装服务(apache后缀名支持 让apache支持apk ipk下载的方法)
- python分词操作(Python英文文本分词无空格模块wordninja的使用实例)
- 织梦dedecms专题页制作详细教程(织梦Dedecms系统SEO优化之网站URL目录优化)
- dedecms数据库调用(DEDECMS直接获取软件模型本地下载地址或服务器名称)
- python中字符串截取规则(Python中的字符串切片截取字符串的详解)
- linux命令du和df的区别(Linux系统目录大小通过du命令获取实例)
- vue组件开发步骤(解析如何自动化生成vue组件文档)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9