IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL复合索引示例 -> 正文阅读

[大数据]MySQL复合索引示例

-- auto-generated definition
create table test
(
    id    int      not null
        primary key,
    name  char(30) not null,
    local char(30) not null,
    age   int      null
);

create index test_name_local_age_index
    on test (name, local, age);

explain参数参考

https://blog.csdn.net/weixin_35973945/article/details/124128677https://blog.csdn.net/weixin_35973945/article/details/124128677

ref:只会读取匹配的行,当查询的列是一个索引的最左前缀或者是一个普通索引(不是主键索引或唯一索引)会使用?ref。即仅仅会查询几行。

index:?连接类型与?all?相同,除了是扫描索引树外。主要有如下两种方式:

  • 如果查询的索引时覆盖索引,并且满足要从该表中查询的数据需求,则仅扫描索引树。在这种情况下,Extra 列为 Using index索引扫描仅仅会比 ALL 快,因为索引树通常小于整个表
  • 通过对索引的读取进行全表扫描,以按照索引顺序查找数据行,Using index 不会出现在 Extra 列。
explain select * from test where name = '1' and local = '1' and age = 1;

?符合最左匹配原则,通过explain执行结果可以看到type = ref,key使用了联合索引

explain select * from test where name = '1' and age = 1 and local = '1';

?

可以看到跟第一个执行结果一致,这是因为SQL语句经过优化器优化之后,依然符合最左匹配原则

explain select * from test where local = '1' and age = 1;

虽然不符合最左匹配原则,但是发现还是使用了索引,这是因为建表语句一共四个字段,除了主键其他的字段组成联合索引,就意味着表里面的所有数据都能在联合索引里面找到,如果增加一个字段重新执行就会发现全表扫描了。

-- auto-generated definition
create table test
(
    id     int         not null
        primary key,
    name   char(30)    not null,
    local  char(30)    not null,
    age    int         null,
    e_mail varchar(50) null
);

create index test_name_local_age_index
    on test (name, local, age);

可以看到type = ALL,extra信息里面没有using index

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:56:33  更:2022-07-20 19:00:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:52:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码