为什么mysql优化器选择了聚集索引
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"为什么mysql优化器选择了聚集索引"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通
千家信息网最后更新 2026年11月02日为什么mysql优化器选择了聚集索引
本篇内容介绍了"为什么mysql优化器选择了聚集索引"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
通过这个以下这个案例,来说明优化器在选择索引时候的取舍。
查看表结构:
MySQL > show create table test2 \G*************************** 1. row *************************** Table: test2Create Table: CREATE TABLE `test2` ( `id` bigint(16) NOT NULL AUTO_INCREMENT, `order_seq` bigint(16) NOT NULL, `order_type` int(11) DEFAULT NULL, `order_flag` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_id` (`id`), KEY `idx_id_orderseq` (`id`,`order_seq`)) ENGINE=InnoDB AUTO_INCREMENT=15002212 DEFAULT CHARSET=utf8mb41 row in set (0.00 sec)
查询一:
MySQL > explain select id,order_seq from test2 where id>10000 and id<20000;+----+-------------+-------+------------+-------+--------------------------------+-----------------+---------+------+-------+----------+--------------------------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+-------+--------------------------------+-----------------+---------+------+-------+----------+--------------------------+| 1 | SIMPLE | test2 | NULL | range | PRIMARY,idx_id,idx_id_orderseq | idx_id_orderseq | 8 | NULL | 18484 | 100.00 | Using where; Using index |+----+-------------+-------+------------+-------+--------------------------------+-----------------+---------+------+-------+----------+--------------------------+1 row in set, 1 warning (0.00 sec)
优化器选择idx_id_orderseq,在意料之中,因为查询字段为id,order_seq,可以利用覆盖索引。
查询二:
MySQL > explain select * from test2 where id>10000 and id<20000;+----+-------------+-------+------------+-------+--------------------------------+---------+---------+------+-------+----------+-------------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+-------+--------------------------------+---------+---------+------+-------+----------+-------------+| 1 | SIMPLE | test2 | NULL | range | PRIMARY,idx_id,idx_id_orderseq | PRIMARY | 8 | NULL | 19122 | 100.00 | Using where |+----+-------------+-------+------------+-------+--------------------------------+---------+---------+------+-------+----------+-------------+
优化器选择了id字段的聚集索引。因为是select *,所以优化器没有选择索引idx_id_orderseq(id,order_seq),id字段的聚集索引(主键)和辅助索引idx_id,优化器是怎么选择的呢?
如果选择辅助索引idx_id,查询到具体id之后,还要回表查到整行的数据信息,虽然id字段是有序的,但是回表查询的数据是无序的,因此变成了磁盘上的离散操作,离散读取比顺序读取性能消耗高的多,所以会选择聚集索引。
"为什么mysql优化器选择了聚集索引"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
索引
选择
查询
字段
内容
数据
更多
案例
知识
离散
辅助
实用
有序
学有所成
接下来
之中
信息
困境
实际
性能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融监管科技数据
互联网最新的科技
港股互联网科技股
广州互联网科技公司
善班互联网科技有限公司
互联网科技缩写
沃里互联网科技
兼蜜互联网科技
互联网科技网站
国外互联网科技网站
多迪互联网科技有限公司
宁波青枫互联网科技有限公司
荆州市昕露互联网络科技有限公司
注册互联网科技公司经营范围大全
天津腾达互联网科技有限公司
迪庆互联网科技招生
福州德业互联网科技
张家口科技产业互联网平台
宁波允成互联网科技有限公司
利用互联网等科技手段
咖啡网
科技和互联网公司
宜安科技 互联网金融
融贸通互联网科技
大白互联网科技
互联网科技革命什么开始
无锡工业互联网科技有限公司
美国五大互联网科技公司市值多少
互联网科技大佬云集
六子台科技互联网展会