MySQL_索引的使用与设计

news2025/2/26 8:39:29

最左前缀法则

  1. 最左前缀法则适用于联合索引;查询从索引的最左列开始,不跳过其中的列,如果跳过其中的列将会导致索引失效(后面字段的索引失效)。

  2. 验证最左前缀法则

    • 三个列的联合索引都同时使用

      explain select * from user where profession = '通讯工程' and age = 17 and gender = 1;
      

      在这里插入图片描述

    • 只使用专业和年龄查询

      explain select * from user where profession = '通讯工程' and age = 17;
      

      在这里插入图片描述

    • 只使用专业查询

      explain select * from user where profession = '通讯工程';
      

      在这里插入图片描述

  3. 最左原则使用索引的情况(A+B+C)

    • A
    • AB
    • ABC
    • BC(不可以,需要查询A字段才可以)
    • AC(使用A索引)
    • CBA (也是可以的)

索引失效

  1. 字符串不加引号

    explain select *from user where phone = 13708822169;
    

    在这里插入图片描述

  2. or 连接(or 前后没有建立索引的时候不会被用到)

    explain select *from user where phone = 13708822169 or status = 0;
    

    在这里插入图片描述 在这里插入图片描述

  3. 模糊查询

    explain select * from user where phone like '%0' ;
    

    在这里插入图片描述

  4. 对于索引使用函数运算

    explain select * from user where substring(phone,1,2) = '19' ;
    

    在这里插入图片描述

  5. 数据分布影响

    explain select * from user where phone > '13508822168';
    

    在这里插入图片描述

    explain select * from user where gender = 1;
    

    在这里插入图片描述

索引的使用和设计原则

使用原则

  1. 避免使用 select * from table_name;

    • 可能避免了回表查询(减少一次查询,提高了效率,前提是查询的结果已经再二级索引的叶子节点出现)
  2. 使用前缀索引代替全索引

    • 计算前缀长度(唯一索引的性能是最高的,唯一索引的前缀长度是1)

    • 不重复的索引基数/数据表的总记录数

      select count(*) from user;
      
      select count(distinct email) from user;
      
      select count(distinct substring(email ,1,8)) from user;
      
      select count(distinct substring(email ,1,2))/count(*) from user;# 判断前缀的长度为2
      
  3. 单列索引和联合索引

    • 使用多个单列索引查询时,并不会全用索引,会根据mysql优化器的指引进行选择

      在这里插入图片描述

设计原则

  1. 数据量大的时候,一定要建索引
  2. 针对于经常查询的多列,去建联合索引
  3. 如果是字符串类型,而且数据很大,尽量去使用前缀索引,前缀度我们尽量去靠近1
  4. 索引还需要控制数量,索引不是越多越好,一定要合适就行,越多增删改越慢,影响用户体验
  5. 要去选择区分度高的列做索引,尽量去建立唯一索引
  6. 设计列尽量不要去存空数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/862858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于R做宏基因组的进化树ClusterTree分析

写在前面 同上一篇的PCoA分析,这个也是基于公司结果基础上的再次分析,重新挑选样本,在公司结果提供的csv结果表上进行删减,本地重新分析作图 步骤 表格预处理 在公司给的ClusterTree的原始表格数据里选取要保留的样本&#xf…

腾讯云轻量应用服务器CPU配置?主频性能

腾讯云轻量应用服务器CPU型号是什么?处理器主频多少?轻量应用服务器不支持指定CPU处理器型号,目前腾讯云服务器网账号下的轻量应用服务器,CPU采用2.5GHz主频的Intel(R) Xeon(R) Gold 6133 处理器,睿频 3.0GHz&#xff…

CTFSHOW php命令执行

目录 web29 过滤flag web30 过滤system php web31 过滤 cat|sort|shell|\. 这里有一个新姿势 可以学习一下 web32 过滤 ; . web33 web34 web35 web36 web37 data伪协议 web38 短开表达式 web39 web40 __FILE__命令的扩展 web41 web42 重定向…

对话即数据分析,网易数帆ChatBI做到了

大数据产业创新服务媒体 ——聚焦数据 改变商业 在当今数字化快速发展的时代,数据已经成为业务经营与管理决策的核心驱要素。无论是跨国大企业还是新兴创业公司,正确、迅速地洞察数据已经变得至关重要。然而,传统的BI工具往往对用户有一定的…

YOLOv5、YOLOv8改进:SEAttention 通道注意力机制

基于通道的注意力机制 源自于 CVPR2018: Squeeze-and-Excitation Networks 官方代码:GitHub - hujie-frank/SENet: Squeeze-and-Excitation Networks 如图所示,其实就是将不同的通道赋予相关的权重。Attention机制用到这里用朴素的话说就是,…

【论文阅读】基于深度学习的时序预测——FEDformer

系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文地址:https://arxiv.org/abs/2201.12740 github地址&a…

Cobbler自定义yum源

再次了解下Cobbler的目录结构: 在/var/www/cobbler/ks_mirror目录下存放的是所有的镜像。 存放的是仓库镜像: 在/var/lib/cobbler/kickstarts目录下是存放的所有的kickstarts文件。 再有就是/etc/cobbler这个目录: [rootvm1 loaders]# cd /…

mysql延时问题排查

背景介绍 最近遇到一个奇怪的问题,有个业务,每天早上七点半产生主从延时,延时时间12.6K; 期间没有抽数/备份等任务;查看慢日志发现,期间有一个delete任务,在主库执行了161s delete from xxxx_…

LeetCode算法心得——故障键盘(StringBuilder)

大家好,我是晴天学长,很久都没有用StringBuilder类了,切记这个自带字符串反转的方法,会在实际比赛中节约不少的时间。 1 )故障键盘 2) .算法思路 故障键盘 1.首先把全部字母给你的了 2.只会反转前面的字符 1.字符串…

【Spring Cloud Alibaba】Linux安装RocketMQ以及RocketMQ Dashboard可视化工具

环境准备:Linux安装Java环境(OracleJDK) 在当今分布式架构的开发中,消息队列成为了一种常见的解决方案。RocketMQ是阿里巴巴开源的分布式消息中间件,具有高吞吐量、高可用性和强大的扩展性,因此在构建大规模…

数据API服务管理功能 - 提升数据效率的关键工具

数据API服务管理功能 - 提升数据效率的关键工具 什么是数据API服务管理功能? 数据API服务管理功能是一种用于有效管理和控制数据API的工具。它为用户提供了方便的界面和功能,以简化数据访问、解析和处理的过程。通过使用数据API服务管理功能&#xff0…

预制混凝土产品公司【PreTam Holdings】申请纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于智利的预制混凝土产品公司【PreTam Holdings】近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为(…

带键盘扫描电路接口的 LED 驱动控制专用芯片

VK1Q60是一种带键盘扫描电路接口的 LED 驱动控制专用芯片,内部集成有数据锁存 器、LED 驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持 8SEGx4GRID的点阵LED显示。最大支持7x4按键。本芯片性能稳定质量可靠,抗…

心法利器[90-95] | 谈校招:合集

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里&…

腾讯云轻量应用服务器镜像应用模板清单大全

腾讯云轻量应用服务器支持多种应用模板镜像,Windows和Linux镜像模板都有,如:宝塔Linux面板腾讯云专享版、WordPress、WooCommerce、LAMP、Node.js、Docker CE、K3s、宝塔Windows面板和ASP.NET等应用模板镜像,腾讯云服务器网分享腾…

i茅台自动申购算法协议分析

首发地址:http://zhuoyue360.com/crack/104.html 一、引言 今日看到有人分享了i茅台自动申购的文章。但是它酷似引流文章,全文一张图,呜呜呜。无法白嫖。太可恶了,因此,我来啦~ 我来整一整,我也要抢茅子! …

第二章:CSS基础进阶-part3:弹性例子布局

文章目录 Flex盒模型二、常见属性2.1 flex属性2.2 justify-content2.3 flex-wrap2.4 flex-flow2.5 align-items2.6 父容器-align-content Flex盒模型 1、普通盒模型 2、弹性盒布局 使用弹性盒布局能让容器的宽度跟随浏览器窗口的变化而变换 二、常见属性 2.1 flex属性 2.2 …

玩机搞机---安卓全机型各种玩机 搞机工具 推荐 一

安卓机型有很多大佬开发的工具箱可以让你在玩机搞机中达到事半功倍的效果。虽然都是adb指令操作。但图形化直观界面一目了然。下面为感兴趣的友友推荐一些工具。 任何的联机操作都有可能导致手机系统崩溃 严重会不开机。请理解工具箱中各个选项操作原理。谨慎操作 &#x1f4…

API接口站点(淘宝1688京东商品详情)实时数据参考示例返回

现如今,随着互联网的发展,商品价格监控已经成为电商行业中的一项重要工具。具体而言,商品价格监控通常包括以下几个方面: 1.数据采集:商品价格监控需要从各个电商平台或者其他相关网站上采集商品的价格数据。这一步骤…

FPGA应用学习笔记----定点除法的实现

除以2可以这样移位 迭代除法,就是直接除 迭代除法,就是直接除 除数左移,被除数减去除数,余数大于0则商数置1然后左移,余数作为被减数左移,再减除数,再看余数是否大于0,若大于0&…