前缀索引与单列联合索引的选择

       📝个人主页:五敷有你      

 🔥系列专栏:面经

⛺️稳中求进,晒太阳

前缀索引

        当字段类型为字符串(varchar,text等) 时,有时候需要索引很长的字符串,这会让索引变得很大。查询的时候浪费大量的磁盘IO,影响查询效率,此时可以只将字符串的一部分前缀建立索引,这样可以大大节约索引的空间,从而提高索引的效率

语法:

create index idx_xxx on table_name(column(n))    

很多情况下,其实只需要一个字符串的前缀就可以很好的区分选择出这一行的数据。

前缀长度

        可以根据索引的选择性来决定,而选择性是指不重复的索引值(基数)和数据表记录的总数的比值,索引选择性越高效率越高,唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的。

如下:对email进行前缀索引长度的判断:

使用substring函数可以一次次试探多长才符合我们的要求。

explain SELECT  count(distinct substring(email,1,10))/count(*) from tb_user

索引创建后看Sub_part就是5

前缀索引的查询流程

截取前缀一部分后去找索引进行匹配,之后找到主键id, 之后去聚集索引进行回表查询,拿到这一行的数据。

此时不是立刻返回,因为匹配都是匹配的前缀,拿到后应该去用email的值去与条件的email比较,是:返回,

不是:找下一个辅助索引看是不是符合的前缀:

        是:接着比较,

        不是就返回。

单列索引与联合索引的选择问题

  • 单列索引:即一个索引只包含单个列。
  • 联合索引:即一个索引包含了多个列。

我们先来看看 tb_user 表中目前的索引情况:

查询出来的索引既有单列索引,也有联合索引。

接下来执行一条SQL语句

通过上述执行计划,我们可以看出来在name字段是有两个索引的一个单列索引,一个联合索引。

但是mysql只会选择一个索引,也就是说,走一个字段的索引。此时是会回表查询的。

        在业务场景中,如果存在多个查询条件,考虑针对于查询字段建立索引时,建议建立联合索引, 而非单列索引。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

能恢复永久删除文件的十大数据恢复软件

当您不小心删除了重要数据,或者由于病毒攻击而丢失了重要数据时,请不要惊慌,我们已经为您准备好了。别无他处,这是您目前市场上最佳数据恢复软件列表的一站式目的地。 能恢复永久删除文件的十大数据恢复软件 1. 奇客数据恢复 这是…

教大家一键下载1688图片信息

电商图片是商品的视觉身份证,对销量有着决定性影响。它们不仅是展示产品,更是讲述品牌故事,激发情感共鸣的工具。高质量的图片能瞬间吸引顾客目光,准确传达产品细节,建立起顾客的信任与购买意愿。在无法亲身体验商品的…

使用网站内容进行多渠道品牌营销的主要优势

在选择服务提供商时,人们使用不同的方式来查找信息并与他们联系。有些人更喜欢网站,有些人则使用社交媒体或电子邮件。网站对于数字存在仍然至关重要,但跨多个渠道管理内容现在至关重要。多渠道营销以客户喜欢的方式与客户建立联系&#xff0…

mysql安装及基础设置

关系型数据库 MySQL是一种关系型数据库管理系统,采用了关系模型来组织数据的数据库,关系数据库将数据保存在不同的表中,用户通过查询 sql 来检索数据库中的数据。 yum 方式安装 mysql # yum -y install mysql-server # systemctl start my…

##12 深入了解正则化与超参数调优:提升神经网络性能的关键策略

文章目录 前言1. 正则化技术的重要性1.1 L1和L2正则化1.2 Dropout1.3 批量归一化 2. 超参数调优技术2.1 网格搜索2.2 随机搜索2.3 贝叶斯优化 3. 实践案例3.1 设置实验3.2 训练和测试 4. 结论 前言 在深度学习中,构建一个高性能的模型不仅需要一个好的架构&#xf…

《这就是ChatGPT》读书笔记

书名:这就是ChatGPT 作者:[美] 斯蒂芬沃尔弗拉姆(Stephen Wolfram) ChatGPT在做什么? ChatGPT可以生成类似于人类书写的文本,它基本任务是弄清楚如何针对它得到的任何文本产生“合理的延续”。当ChatGPT写…

Redis-新数据类型-Geospatia

新数据类型-Geospatia 简介 GEO,Geographic,地理信息的缩写。 该类型就是元素的二维坐标,在地图上就是经纬度。Redis基于该类型,提供了经纬度设置、查询、范围 查询、距离查询、经纬度Hash等常见操作。 常用命令 geoadd key longitude lat…

python循环结构练习

目录 前言 1、使用while实现模拟用户登录 1.1 题目要求 1.2 解题 2、输入数字,生成对应等腰三角形 2.1 题目要求 2.2 解题 3、输入数字,生成对应的菱形 3.1 题目要求 3.2 解题 总结 前言 本系列主要是讲解python中的题目,目的是为…

c++ libtorch使用cmake建立

如果我们安装好pytorch,其实不一定一定要安装libtorch,默认都已经安装过了 1 进入pytorch conda env list conda activate pytorch 命令行下使用 python -c 来获取libtorch的基本信息, python -c "import torch;print(torch.utils.c…

uniapp:抖音PK进度条(nvue)

nvue中,仿抖音PK进度条效果, <template><view class="index" :style="{width:windowWidth+px,height:index_windowHeight+px,paddingTop:windowTop+px}"><view class="pk"><text class="pk_jindu_left_val fsz-24 …

������森林消防泵:特点及使用场景 /恒峰智慧科技������

在大自然的怀抱中&#xff0c;森林是地球上最美丽的绿色家园。然而&#xff0c;森林火灾却时常威胁着这片美丽的家园。为了保护森林&#xff0c;我们有幸拥有了一支强大的森林消防泵队伍。今天&#xff0c;就让我们一起来了解一下这些守护者们的故事吧&#xff01; &#xfffd…

OpenHarmony 3.2 Release版本实战开发——Codec HDI适配过程

简介 OpenHarmony Codec HDI&#xff08;Hardware Device Interface&#xff09;驱动框架基于 OpenMax 实现了视屏硬件编解码驱动&#xff0c;提供 Codec 基础能力接口供上层媒体服务调用&#xff0c;包括获取组件编解码能力、创建组件、参数设置、数据的轮转和控制、以及销毁…

晶片的厚度会影响晶振的频率吗?

晶振&#xff0c;是一种能够产生稳定频率的电子元件&#xff0c;广泛应用于各种电子设备中。晶振的频率参数&#xff0c;即其振荡产生的频率大小&#xff0c;是晶振性能的重要指标之一。石英晶体的切割方式显得至关重要。不同的切割方式&#xff0c;如AT-cut、CT-cut、SC-cut等…

文心一言 VS 讯飞星火 VS chatgpt (255)-- 算法导论18.1 1题

一、请说明依次从图18-8(f)中删除C、P和V后的结果。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 首先&#xff0c;让我们明确一点&#xff1a;由于您没有提供具体的图18-8(f)的内容&#xff0c;我只能假设它是一个数据结构&#xff08;可能是图、树或列表等&…

1011: 二叉排序树的实现和查找

解法&#xff1a; 二叉排序树&#xff08;Binary Search Tree&#xff0c;简称BST&#xff09;也被称为二叉搜索树或二叉查找树&#xff0c;是一种重要的二叉树结构&#xff0c;它具有以下性质&#xff1a; 左子树上所有节点的值都小于根节点的值&#xff1b;右子树上所有节点的…

网络编程套接字和传输层tcp,udp协议

认识端口号 我们知道在网络数据传输的时候&#xff0c;在IP数据包头部有两个IP地址&#xff0c;分别叫做源IP地址和目的IP地址。IP地址是帮助我们在网络中确定最终发送的主机&#xff0c;但是实际上数据应该发送到主机上指定的进程上的&#xff0c;所以我们不仅要确定主机&…

单片机智能灯控制系统源程序仿真原理图与论文全套资料

目录 1、设计描述 2、仿真图 3、程序 4、资料内容 资料下载地址&#xff1a;单片机智能灯控制系统源程序仿真原理图与论文全套资料下载 1、设计描述 设计了一款智能控制系统。 AT89C51LCD1602DS1302按键LED组成了这样一个完整的设计。 P2.0-P2.3 4个LED等代表庭院内的4…

Mock.js 问题记录

文章目录 Mock.js 问题记录1. 浮点数范围限制对小数不起效2. increment 全局共用 Mock.js 问题记录 最新写网页的时候引入了 Mock.js 来生成模拟数据&#xff1b; Mock使用起来很方便&#xff0c;具体可以参考 官网 很快就能上手&#xff0c; 但是这个项目最近一次提交还是在2…

Windows 跨服务器进行 MYSQL备份脚本

Windows 服务器进行 MYSQL备份的脚本&#xff0c;使用该脚本前&#xff0c;请先测试一下 1、新建一个文本文档 2、将下面代码放入文本文档中&#xff0c;保存退出 echo off :: 命令窗口名 title mysql-bak:: 参数定义 set "Y%date:~,4%" set "m%date:~5,2%&qu…

公司服务器内网OA网站如何实现外网访问?

目前很多公司会用windows自带的IIS搭建局域网ftp服务器&#xff0c;并搭建WEB服务办公网站。公司内部OA服务器&#xff0c;在公司内网是可以正常访问的&#xff0c;如何将公司内部的OA服务器映射到internet网络&#xff0c;让不在公司的企业员工可以正常访问到内部的OA服务器&a…