iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >为什么mysql优化器选择了聚集索引
  • 818
分享到

为什么mysql优化器选择了聚集索引

2024-04-02 19:04:59 818人浏览 薄情痞子
摘要

本篇内容介绍了“为什么Mysql优化器选择了聚集索引”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过这个

本篇内容介绍了“为什么Mysql优化器选择了聚集索引”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

通过这个以下这个案例,来说明优化器在选择索引时候的取舍。

查看表结构:

mysql > show create table test2 \G
*************************** 1. row ***************************
       Table: test2
Create 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=utf8mb4
1 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优化器选择了聚集索引”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 为什么mysql优化器选择了聚集索引

本文链接: https://www.lsjlt.com/news/62368.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 为什么mysql优化器选择了聚集索引
    本篇内容介绍了“为什么mysql优化器选择了聚集索引”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过这个...
    99+
    2024-04-02
  • MySQL innodb怎么选择一个聚簇索引
    这篇文章主要介绍了MySQL innodb怎么选择一个聚簇索引,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于innodb,主键毫无疑问是...
    99+
    2024-04-02
  • Mysql索引选择以及优化详解
    目录索引模型 B+Tree 索引选择 索引优化 索引选择性 覆盖索引 最左前缀原则+索引下推前缀索引唯一索引索引失效总结索引模型 哈希表 适用于只有等值查询的场景,Memor...
    99+
    2024-04-02
  • PHP与MySQL索引的选择与优化策略
    引言:在开发Web应用程序时,PHP与MySQL是两个重要的技术组合。而索引作为MySQL中重要的特性,对于提高数据库的查询性能至关重要。本文将介绍PHP与MySQL中索引的选择和优化策略,并提供一些具体的代码示例。一、索引的基本原理与分类...
    99+
    2023-10-21
    MySQL PHP 索引优化
  • MySQL聚簇索引的优缺点是什么
    这篇文章主要介绍“MySQL聚簇索引的优缺点是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL聚簇索引的优缺点是什么”文章能帮助大家解决问题。1. 什么...
    99+
    2023-04-21
    mysql
  • MySQL索引优化规则是什么
    这篇文章将为大家详细讲解有关MySQL索引优化规则是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。今天mysql教程栏目为大家介绍MySQL的索引优化规则。前言索引的...
    99+
    2024-04-02
  • 浅谈MySQL为什么会选错索引
    目录1.引例2.优化器的逻辑3.解决办法1.引例 首先创建一张表,并对字段a,b分别建立索引: create table t ( id int(11) not null, a int(11) defaul...
    99+
    2023-03-20
    MySQL 选错索引
  • Swoole和Workerman对PHP与MySQL的索引统计和索引选择的优化方法
    引言:在Web开发过程中,数据库是必备的组件之一。而索引是对数据库中数据进行快速查找的关键因素之一。索引的选择和优化可以极大地提高数据库的查询性能。在本文中,我们将介绍如何使用Swoole和Workerman对PHP与MySQL的索引进行统...
    99+
    2023-10-21
    swoole 索引优化 Workerman
  • 为什么MySQL偶尔会选错索引
    这期内容当中小编将会给大家带来有关为什么MySQL偶尔会选错索引,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在此之前,我做过不少ToC的项目,在ToC的应用场景中,业务...
    99+
    2024-04-02
  • MySQL索引优化器工作原理是什么
    这篇“MySQL索引优化器工作原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“My...
    99+
    2022-11-30
    mysql
  • mysql索引优化的原则是什么
    MySQL索引优化的原则包括以下几点: 选择合适的索引类型:MySQL支持多种索引类型,包括B-Tree索引、哈希索引和全文索引...
    99+
    2023-10-28
    mysql
  • MySQL索引优化的方法是什么
    MySQL索引优化的方法有以下几种: 选择合适的列创建索引:根据查询的列和条件,选择最经常使用的列创建索引,以提高查询的效率。 ...
    99+
    2024-04-09
    MySQL
  • MySQL为什么有时候会选错索引
    本篇内容介绍了“MySQL为什么有时候会选错索引”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!今天在生产环...
    99+
    2024-04-02
  • Mysql索引底层及优化方法是什么
    今天小编给大家分享一下Mysql索引底层及优化方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
  • 深入了解MySQL中索引优化器的工作原理
    目录本文导读一、mysql 优化器是如何选择索引的1、MySQL数据库组成2、MySQL数据库成本计算二、MySQL查询成本三、SELECT 执行过程总结本文导读 本文将解读MySQL数据库查询优化器(CBO)的...
    99+
    2024-04-02
  • 类型转换对MySQL选择索引有什么影响
    这篇文章主要讲解了“类型转换对MySQL选择索引有什么影响”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“类型转换对MySQL选择索引有什么影响”吧!遇到了几...
    99+
    2024-04-02
  • 为什么Java和Git是存储索引的最佳选择?
    随着互联网时代的到来,数据的存储和管理变得越来越重要。为了更好地管理数据,索引技术应运而生。索引可以大大提高数据的查询效率,因为它可以通过预先建立的数据结构来快速定位所需的数据。在索引的选择方面,Java和Git已经成为了不可替代的存储索...
    99+
    2023-08-30
    git 存储 索引
  • MySQL索引的原理与优化策略是什么
    这篇文章主要介绍了MySQL索引的原理与优化策略是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL索引的原理与优化策略是什么文章都会有所收获,下面我们一起来看看吧。索引的概念MySQL索引是一种用于...
    99+
    2023-07-05
  • 为什么选择PHP集成安装环境?优势解析
    为什么选择PHP集成安装环境?优势解析 随着互联网的迅速发展,网站开发变得越来越普遍,而PHP作为一种强大的服务器端语言,在网站开发中得到了广泛应用。为了更高效地开发和调试PHP程序,...
    99+
    2024-04-02
  • 网站优化中搜索引擎为什么重视原创
    这篇文章主要为大家展示了“网站优化中搜索引擎为什么重视原创”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“网站优化中搜索引擎为什么重视原创”这篇文章吧。一.大多数网站采集泛滥记得之前笔者优化了一个...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作