[MySQL] 索引与性能(3)- 覆盖索引
来源:互联网 发布:大数据4v 问题 编辑:程序博客网 时间:2024/06/01 09:33
覆盖索引是指索引的叶子节点已包含所有要查询的列,因此不需要访问表数据,能极大地提高性能。覆盖索引对InnoDB的聚簇索引表特别有用,因为可以避免InnoDB二级索引的二次查询。MySQL里只有B树索引能做覆盖索引,因为必须要存储索引列的值,而哈希索引、空间索引、全文索引不可以。
当发起一个覆盖索引的查询时,在explain的Extra列可以看到Using Index,下面看一个例子,在表users有一个多列索引(login_id,status),执行计划如下
root@test 01:30:35>explain select login_id,status from users\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: users type: indexpossible_keys: NULL key: login_id key_len: 387 ref: NULL rows: 5309293 Extra: Using index对于innoDB来说,还有一个好处,就是二级索引包含主键值,所以二级索引还可以利用这个消息覆盖索引,如下所示:
root@test 01:34:17>explain select login_id,status,id from users\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: users type: indexpossible_keys: NULL key: login_id key_len: 387 ref: NULL rows: 5309293 Extra: Using index从上面我们可以知道,虽然二级索引的定义没有包含主键,但依然可以使用覆盖索引。
- [MySQL] 索引与性能(3)- 覆盖索引
- [MySQL] 索引与性能(3)- 覆盖索引
- 高性能的MySQL(5)索引策略-覆盖索引与索引排序
- 【MySQL】性能优化之 覆盖索引
- 【MySQL】性能优化之 覆盖索引
- Mysql性能优化案例-覆盖索引分享
- [MySQL] 索引与性能(1)- 索引类型
- [MySQL] 索引与性能(2)- 聚簇索引
- MySQL笔记(覆盖索引)
- [MySQL] 索引与性能(4)- 排序
- mysql覆盖索引
- Mysql覆盖索引
- MySQL覆盖索引
- mysql覆盖索引
- mysql覆盖索引
- Mysql-索引覆盖
- 《MySql》--覆盖索引
- MySQL 覆盖索引
- 用JavaScript实现支持图片的字段类型
- socket
- java学习之路---包装类
- [easyui+ueditor]ueditor插入图片对话框被遮盖问题
- Delphi著名皮肤控件库横向对比
- [MySQL] 索引与性能(3)- 覆盖索引
- 使用MediaPlayer来播放视频
- XMPP即时通讯mac系统下ejabberd服务器环境搭建
- 虚函数与构造函数、析构函数
- win7与ubuntu12.04LTS双系统安装实践
- C# 设置本地连接的IP地址
- 董同学东软实训心得:在实践中成长
- Delphi实现Ftp客户端下载(支持断点续传,多线程传输)
- 【Android】状态栏通知Notification、NotificationManager详解