首页 > 数据库 >Mysql 索引合并

Mysql 索引合并

时间:2024-12-26 15:52:04浏览次数:5  
标签:idx 交集 合并 索引 Mysql 排序 where 主键

1.什么是索引合并

  当where条件包含多个索引时,mysql可能会使用超过一个索引提高查询效率(当然也可能不走索引,以explain为准),例如有idx_a, idx_b,查询语句where a = 1 and b = 'a',可能会走索引合并

2.特征
explain type=index_merger

3.有哪些类型
有以下三种类型,可在explain 的extra中查看
intersect(交集): 例如where a = 1 and b = 'a',简单理解就是分别按照idx_a和idx_b查出两个集合,求交集;但要求查出的两个集合是主键有序的,为了便于求交集,当然mysql可以自己先排序再求交集(猜测可能因为效率不愿意这样做);
union(并集) :例如where a = 1 or b = 'a',同上(这里也是要求两个集合主键有序);
sort_union(排序并集) :例如where a > 1 or b = 'a',也是分别求两个集合,但因为可能是二级索引,不是主键有序,所以先sort再union(问题来了,这里为什么又愿意排序,交集是由多到少,并集是由少到多,对少的排序效率能接受,且不白干活,数据都是最终要返回的---猜的哈)

4.参考文档
https://juejin.cn/post/7071865447108313095

标签:idx,交集,合并,索引,Mysql,排序,where,主键
From: https://www.cnblogs.com/katsu2017/p/18633196

相关文章

  • python脚本定期删除EFK日志索引
    使用pyhon脚本删除50天前的日志!/usr/bin/python3fromelasticsearchimportElasticsearchfromdatetimeimportdatetime,timedeltaElasticsearch服务器地址,默认本地为'localhost',可按需替换es_host="localhost"Elasticsearch服务器端口,默认9200,按需替换es_port=92......
  • MySQL8.0常用命令
    ----------------------------------------------------------------------------------------------------------------------------------------------------- --查询数据库中哪些线程正在执行showprocesslist;#查版本mysql-V或mysql> select version();mysql-h127......
  • SQL语言2-MySQL
    1.1VIEW视图视图:虚拟表,保存有实表的查询结果,相当于别名利用视图,可以隐藏表的真实结构,在程序中利用视图进行查询,可以避免表结构的变化,而修改程序,降低程序和数据库之间的耦合度利用视图进行查询操作可以带来以下好处:隐藏表结构:使用视图可以将底层表的复杂性和细节与应用......
  • MySQL 中information_schema、mysql、performance_schema、sys 简介
    一、information_schema简介在MySQL中,把information_schema看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本......
  • 在 .NET C# 中的邮件合并过程中操作表格单元格
    TXTextControl中的邮件合并类是一个强大的库,旨在通过将数据合并到模板中来自动创建文档。它充当结构化数据(例如来自数据库、JSON或XML)和动态文档生成之间的桥梁,对于需要自动化文档工作流程的应用程序来说非常有用。从本质上讲,MailMerge类简化了创建专业、数据驱动文档......
  • 聊一聊坑人的 C# MySql.Data SDK
    https://www.cnblogs.com/huangxincheng/p/18619048 一:背景1.讲故事为什么说这东西比较坑人呢?是因为最近一个月接到了两个dump,都反应程序卡死无响应,最后分析下来是因为线程饥饿导致,那什么原因导致的线程饥饿呢?进一步分析发现罪魁祸首是 MySql.Data,这就让人无语了,并且反馈都......
  • 使用Python开发PPT图片提取与九宫格合并工具
    在日常工作中,我们经常需要处理PPT中的图片,有时需要批量提取,有时需要将多张图片合并成特定布局。本文将介绍如何使用Python开发一个图形界面工具,实现PPT图片提取和九宫格合并功能。C:\pythoncode\new\pptextractandmerge.py全部代码importwximportosfrompptximport......
  • SQL语言1-MySQL
    1.SQL语言1.1关系型数据库的常见组件数据库:database表的集合,物理上表现为一个目录表:table,行:row列:column索引:index视图:view,虚拟的表存储过程:procedure存储函数:function触发器:trigger事件调度器:eventscheduler,任务计划用户:user权限:privilege1.2SQL语言语法标准......
  • 基于docker的MySQL、canal、Elasticsearch数据同步测试
    回顾一次容器环境的MySQL、canal、Elasticsearch数据同步MySQL和Elasticsearch安装初始化就不展示了,版本如下:sql表关键字段如下:CREATETABLE`fault_code`(`title`varchar(255)CHARACTERSETutf8mb4DEFAULTNULL,`description`varchar(512)CHARACTERSETutf8mb......
  • 容器环境的MySQL、canal、Elasticsearch数据同步测试
    回顾一次容器环境的MySQL、canal、Elasticsearch数据同步MySQL和Elasticsearch安装初始化就不展示了,版本如下:sql表关键字段如下:CREATETABLE`fault_code`(`title`varchar(255)CHARACTERSETutf8mb4DEFAULTNULL,`description`varchar(512)CHARACTERSETutf8mb......