iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL count(*)之索引选择
  • 522
分享到

MySQL count(*)之索引选择

2024-04-02 19:04:59 522人浏览 泡泡鱼
摘要

覆盖索引对于一些统计问题,如下: Mysql > show create table test1 \G *****************

覆盖索引对于一些统计问题,如下:

Mysql > show create table test1 \G
*************************** 1. row ***************************
       Table: test1
Create Table: CREATE TABLE `test1` (
  `id` bigint(16) NOT NULL AUTO_INCREMENT,
  `order_seq` bigint(16) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_id` (`id`),
  KEY `idx_id_ordseq` (`id`,`order_seq`)
) ENGINE=InnoDB AUTO_INCREMENT=15002212 DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
mysql > explain select count(*) from test1 where id>10000 and id<20000;
+----+-------------+-------+------------+-------+------------------------------+--------+---------+------+------+----------+--------------------------+
| id | select_type | table | partitions | type  | possible_keys                | key    | key_len | ref  | rows | filtered | Extra                    |
+----+-------------+-------+------------+-------+------------------------------+--------+---------+------+------+----------+--------------------------+
|  1 | SIMPLE      | test1 | NULL       | range | PRIMARY,idx_id,idx_id_ordseq | idx_id | 8       | NULL | 9999 |   100.00 | Using where; Using index |
+----+-------------+-------+------------+-------+------------------------------+--------+---------+------+------+----------+--------------------------+
1 row in set, 1 warning (0.00 sec)

innodb存储引擎选择了id字段的辅助索引,而不是聚集索引来统计,更不是联合索引。原因是辅助索引远小于聚集索引,选择辅助索引可以减少IO资源消耗。

而另外一个统计场景:

select count(*) from test1 where order_seq > 1502131212577 and order_seq< 202007080947244761;

test1表建有id和 order_seq 字段的联合索引。

Mysql > show create table test1 \G
*************************** 1. row ***************************
       Table: test1
Create Table: CREATE TABLE `test1` (
  `id` bigint(16) NOT NULL AUTO_INCREMENT,
  `order_seq` bigint(16) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_id` (`id`),
  KEY `idx_id_ordseq` (`id`,`order_seq`)
) ENGINE=InnoDB AUTO_INCREMENT=15002212 DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
MySQL > explain select count(*) from test1 where order_seq > 1502131212577 and order_seq< 202007080947244761;
+----+-------------+-------+------------+-------+---------------+---------------+---------+------+----------+----------+--------------------------+
| id | select_type | table | partitions | type  | possible_keys | key           | key_len | ref  | rows     | filtered | Extra                    |
+----+-------------+-------+------------+-------+---------------+---------------+---------+------+----------+----------+--------------------------+
|  1 | SIMPLE      | test1 | NULL       | index | NULL          | idx_id_ordseq | 16      | NULL | 15068082 |    11.11 | Using where; Using index |
+----+-------------+-------+------------+-------+---------------+---------------+---------+------+----------+----------+--------------------------+
1 row in set, 1 warning (0.00 sec)

这里使用条件 order_seq 查询,一般情况下使用不了联合索引的,但是这个案例中的查询,利用到覆盖索引的信息。possible_keys依然为null,但是key是idx_id_ordseq,extra里出现Using index,表示为覆盖索引。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL count(*)之索引选择

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL怎样选择合适的索引
    这篇文章主要介绍了MySQL怎样选择合适的索引,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先来看一个栗子EXPLAIN sele...
    99+
    2024-04-02
  • Mysql索引选择以及优化详解
    目录索引模型 B+Tree 索引选择 索引优化 索引选择性 覆盖索引 最左前缀原则+索引下推前缀索引唯一索引索引失效总结索引模型 哈希表 适用于只有等值查询的场景,Memor...
    99+
    2024-04-02
  • mysql联合索引的选择性解析
    本篇内容介绍了“mysql联合索引的选择性解析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过下面的实验...
    99+
    2024-04-02
  • MySQL innodb怎么选择一个聚簇索引
    这篇文章主要介绍了MySQL innodb怎么选择一个聚簇索引,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于innodb,主键毫无疑问是...
    99+
    2024-04-02
  • MySQL 中这么多索引该怎么选择
    目录前言MySQL 单字段索引问题组合索引唯一索引和普通索引总结前言 索引的本质是存储引擎用于快速查询记录的一种数据结构。特别是数据表中数据特别多的时候,索引对于数据库的性能就愈发重...
    99+
    2024-04-02
  • PHP与MySQL索引的选择与优化策略
    引言:在开发Web应用程序时,PHP与MySQL是两个重要的技术组合。而索引作为MySQL中重要的特性,对于提高数据库的查询性能至关重要。本文将介绍PHP与MySQL中索引的选择和优化策略,并提供一些具体的代码示例。一、索引的基本原理与分类...
    99+
    2023-10-21
    MySQL PHP 索引优化
  • MySQL进阶之索引
    目录索引概述介绍特点索引结构索引进化的过程B-Tree索引概述 介绍 索引(index)是帮助mysql高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引...
    99+
    2023-04-09
    MySQL索引
  • 为什么mysql优化器选择了聚集索引
    本篇内容介绍了“为什么mysql优化器选择了聚集索引”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过这个...
    99+
    2024-04-02
  • MySQL之聚簇索引与非聚簇索引
    MySQL之聚簇索引与非聚簇索引 聚簇索引非聚簇索引聚簇索引和非聚簇索引的区分MySQL索引实现InnoDB索引实现MyISAM索引实现 问答 索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,主要讨论Inn...
    99+
    2023-08-30
    mysql 数据库
  • mysql织梦索引优化之MySQL Order By索引优化
    在一些情况下,MySQL可以直接使用索引来满足一个ORDER BY 或GROUP BY 子句而无需做额外的排序。尽管ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的ORDER B...
    99+
    2024-04-02
  • Swoole和Workerman对PHP与MySQL的索引统计和索引选择的优化方法
    引言:在Web开发过程中,数据库是必备的组件之一。而索引是对数据库中数据进行快速查找的关键因素之一。索引的选择和优化可以极大地提高数据库的查询性能。在本文中,我们将介绍如何使用Swoole和Workerman对PHP与MySQL的索引进行统...
    99+
    2023-10-21
    swoole 索引优化 Workerman
  • PHP与MySQL索引的不同类型及选择原则
    导言:在数据库查询优化中,索引是非常重要的一部分。它可以提高查询速度,减少数据库的负载,从而提升系统性能。在使用PHP连接MySQL数据库时,了解不同类型的索引及其选择原则,可以帮助我们更好地优化数据库的性能。一、MySQL索引的类型B-T...
    99+
    2023-10-21
    PHP (编程关键词: PHP) MySQL (编程关键词: MySQL) 索引 (编程关键词: 索引)
  • 类型转换对MySQL选择索引有什么影响
    这篇文章主要讲解了“类型转换对MySQL选择索引有什么影响”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“类型转换对MySQL选择索引有什么影响”吧!遇到了几...
    99+
    2024-04-02
  • 如何在 PHP 索引、Django 和 JavaScript 之间做出最佳选择?
    在如今的软件开发领域,PHP、Django和JavaScript是最受欢迎的编程语言之一。这三种编程语言各有优缺点,因此在选择使用它们时需要仔细考虑。在本文中,我们将探讨如何在PHP索引、Django和JavaScript之间做出最佳选择。...
    99+
    2023-08-04
    索引 django javascript
  • MySQL之索引结构解读
    目录mysql索引是什么二叉树红黑树B+Tree总结MySQL索引是什么 MySQL索引就是帮助MySQL高效获取数据的数据结构。 这个数据结构也就是我们常说的二叉树、红黑树、Hash表等索引数据结构,借助这样的数据结构...
    99+
    2023-04-28
    MySQL索引结构 MySQL索引 索引结构
  • CBO如何选择相同cost的索引
    ACOUG年会杨长老的演讲中,曾提到一个问题, 一条SQL语句,两种执行计划的cost值相同,CBO是如何选择执行计划? 翻译一下问题,创建测试表数据, SQL> creat...
    99+
    2024-04-02
  • 怎么理解并掌握mysql索引之前缀索引
    本篇内容主要讲解“怎么理解并掌握mysql索引之前缀索引”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解并掌握mysql索引之前缀索引”吧!有时候需要很长...
    99+
    2024-04-02
  • MongoDB之索引(全文索引)
    在一些信息管理平台上经常需要进行信息模糊查询,最早的时候是在某个字段上实现的模糊查询,但是这个时候返回的信息并不会很准确,因为只能够查A字段或者是B字段,而在MongoDB里面实现了非常简单的全文检索。 ...
    99+
    2024-04-02
  • MySQL数据库之索引详解
    目录一、MySQL索引简介二、MySQL五种类型索引详解(一)普通索引(二)唯一性索引(三)主键索引(四)复合索引(五)全文索引三、MySQL索引使用原则总结今天继续给大家介绍MyS...
    99+
    2024-04-02
  • MySQL之索引(入门级讲解)
    目录 一.索引的概念   1.1索引的简介  1.2.索引的优缺点 二.MySQL索引语法 2.1查看索引 2.2创建索引 2.2.1 创建表时创建索引  2.2.2存在的表上创建索引 2.3删除索引 三.索引的数据结构       3.1...
    99+
    2023-08-31
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作