索引优化学习

news2025/1/15 6:54:27

背景

最近做查询优化,学到的。
  • 字段长度,索引长度
  • 联合索引计算是否使用
  • 范围查询使用索引

字段长度(varchar)

只谈论varchar:首先我们建表varchar(20) 中的20是字符数。看你的数据库编码

执行:show create table <table>
可以看到:CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
其中utf8mb4是编码,utf8mb4_0900_ai_ci是默认排序方式

utf8mb4:1个字符占用4字节。索引varchar(20):占用20*4=100字节。(按这样计算,不考虑其他)。其他编码可,仿照。
如果你的字符串字符不到20,mysql会自定义存储长度。意思是,varchar(100)和varchar(20)如果存20字符占用是一样的。

索引长度

考虑到字符会自定义适应长度,索引会吗?(还不知道)
网上锁单索引长度超过:767,就不能给建。在utf8mb4编码下,大概能装191的,索引varchar(191)大的,就不能建索引。复合索引除外。

select version()#可查看数据库版本我的:8.0.23

在我的版本下,索引最大长度是3072。详情请看:
https://www.cnblogs.com/haha029/p/15727550.html
如果你计算出来太大,就需要截取建索引了。

联合索引计算是否使用

上面讨论了,索引的长度和字段的关系,于是想到explain出来的key_len和索引的关系:
在这里插入图片描述
我有个复合索引,varchar(255)+date。图中是我explain出来的,第一个1027就是对应索引的key_len,所以,联合索引到底用到,我后面个date字段没?
我们来计算一下长度,公式如下:

1.所有的索引字段,如果没有设置not null,则需要加一个字节。 

2.定长字段,int占四个字节、date占三个字节、char(n)占n个字符。 

3.对于变成字段varchar(n),则有n个字符+两个字节。 

4.不同的字符集,一个字符占用的字节数不同。 utf8mb4占用4字节。

计算一下:255*4(字符占用字节)+1(能为空)+2(varchar需要+2)+3(date占用)+1(可能为空)=1027,所以上面用到了我联合索引的下一个字段。
详情:索引计算

范围查询使用索引

范围查询时,使用联合索引,如果前面的使用了范围查询,就会导致后面的失效。例如:abc联合索引。a使用了范围查询,索引只会使用到a。可根据上面自己计算。

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

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

相关文章

支持多种网关类型!米尔基于Zynq-7010/20开发平台工业网关设计应用

随着工业物联网的飞速的发展&#xff0c;5G时代的到来&#xff0c;工业控制系统在生产领域应用越来越广泛&#xff0c;工业物联网为未来工业控制系统灵活性和可扩展性的需求提供了支持。工业物联网使我们的生产数据可以进行规模化集中存储&#xff0c;并利用高速采集、云计算等…

ChatGPT国产平替出现了:APP商店就能下载,还可给AI加人设,背后公司刚成立3个月...

明敏 发自 凹非寺量子位 | 公众号 QbitAIChatGPT太火爆谁不想上手试试&#xff1f;但注册复杂、服务器拥挤……着实有点麻烦。不过很快就有极客网友指路&#xff0c;说国内其实已经有类似的APP上线了&#xff0c;也是上知天文下知地理的那种。比如聊聊《三体》&#xff0c;还会…

Transformer 训练优化

前言 自 BERT 出现以来&#xff0c;NLP 领域已经进入了大模型的时代&#xff0c;大模型虽然效果好&#xff0c;但是毕竟不是人人都有着丰富的 GPU 资源&#xff0c;在训练时往往就捉襟见肘&#xff0c;出现显存 out of memory 的问题&#xff0c;或者训练时间非常非常的久&…

web期末大作业:基于html+css+js制作深圳大学网站(13页) 学校班级网页制作模板 学生静态HTML网页源码

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【easypoi 模板导出嵌套 list 问题】

easypoi 模板导出多 list 问题1背景1.1 espoi 模板定义1.2 导出结果1.3发现共享单车的数据没有显示&#xff0c;手动操作取消共享单车的单元格合并1.4手动取消单元格合并后数据&#xff0c;正常再把框线画好1.5 代码操作&#xff1a;用 esaypoi 处理到1.2&#xff0c;用基础 po…

聊聊与前端工程师天然互补的 Serverless

作为前端工程师&#xff0c;我们的使命是为用户提供良好的前端用户体验。随着云原生时代的到来&#xff0c;显而易见的&#xff0c;我们能做的更多了。Serverless 产品的特点是免运维、按量付费和自适应弹性&#xff0c;所以我们可以利用云上的各种 Serverless 能力&#xff0c…

《程序员的自我修养》程序实现的两大环境

学习内容 翻译环境 预处理 编译 汇编 链接 执行环境 在标准C的任何一种实现中&#xff0c;都存在两个不同的环境&#xff1a; 1.翻译环境&#xff1a;在这个环境中&#xff0c;源代码被翻译成为可执行的机器指令。 2.执行环境&#xff1a;用于执行实际的代码 在VS2022中&…

字符串的读入方式

文章目录1、scanf2、fgets()3、cin4、cin.getline()5、getline()1、scanf scanf只能读入不带空格的字符串&#xff0c;遇到空格则结束。scanf只能读入字符数组&#xff0c;不能读入string。scanf在读入的时候&#xff0c;会自动在字符串的末尾加上’\0’。定义字符数组长度时&…

虚表指针在C++类的继承/多态与重载中的基本逻辑

文章目录前言重载继承虚函数虚函数表动态绑定的实现析构函数构造函数多态子类直接继承父类的方法&#xff0c;不覆盖多重继承纯虚函数前言 C在C语言的基础上增加了类的概念&#xff0c;而类的最关键的特性就是三个&#xff1a; 继承多态重载 这篇文章想接着上两篇C相关的文章…

[附源码]Python计算机毕业设计SSM基于推荐算法的汽车租赁系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java动物爱心救助平台s9dza

首先选择计算机题目的时候先看定什么主题&#xff0c;一般的话都选择当年最热门的话题进行组题&#xff0c;就比如说&#xff0c;今年的热门话题有奥运会&#xff0c;全运会&#xff0c;残运会&#xff0c;或者疫情相关的&#xff0c;这些都是热门话题&#xff0c;所以你就可以…

HTML做一个抗疫逆行者感动人物页面(纯html代码)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

AI公平性研究进展(2022)

最近AI公平性方面出了不少新的研究成果&#xff0c;如有遗漏&#xff0c;欢迎补充↓↓↓↓ 公平性提升 MAAT: A Novel Ensemble Approach to Addressing Fairness and Performance Bugs for Machine Learning Software, FSE, 2022. 利用模型集成的方式获得公平的预测结果&am…

Windows下如何查看某个端口被谁占用

开发时经常遇到端口被占用的情况&#xff0c;这个时候我们就需要找出被占用端口的程序&#xff0c;然后结束它&#xff0c;本文为大家介绍如何查找被占用的端口。 1、打开命令窗口(以管理员身份运行) 开始—->运行—->cmd&#xff0c;或者是 windowR 组合键&#xff0c…

含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

开关电源 - LLC电路的谐振工作模态浅析

LLC电路的谐振工作模态浅析 LLC谐振电路是常用的拓扑&#xff0c;广泛应用在目前的热门应用中&#xff0c;本文主要从典型谐振状态来分析其基本工作过程&#xff0c;后续我们将逐步扩展到其它工作状态。 一、电路工作基本条件及电路组成 图1 电路主要组成部分 如上图1所示&a…

c#入门-运算符

可用运算符 值的运算也是自定义的&#xff0c;但是这个就看不出了。 要么翻源文件&#xff0c;要么翻说明书才知道一个类型能怎么运算。 但是一个默认情况下的类型&#xff0c;是没有定义任何运算符的。 也就是说你适用的运算一定是由人先写出来的&#xff0c;没有系统默认的…

MYSQL的索引事务

文章目录1&#xff1a;索引1.1&#xff1a;概念&#xff1a;1.2 作用&#xff1a;1.3 使用场景&#xff1a;1.4 使用&#xff1a;补充&#xff1a;**2&#xff1a;了解一下B树&#xff1a;****3&#xff1a;了解一下B树**4&#xff1a;为什么使用B树/B树来实现索引2&#xff1a…

通过IP地址如何查到用户真实个人信息

当人们使用服务时&#xff0c;互联网上所有科技巨头公司都会收集大量的数据&#xff0c;他们就是这样发财的。微博知道您的朋友是谁、您 “喜欢” 什么&#xff0c;以及您在新闻源上阅读的内容种类&#xff1b;百度知道您的想法、您想知道什么、以及任何时候的去向&#xff1b;…

[附源码]JAVA毕业设计小区物业管理系统(系统+LW)

[附源码]JAVA毕业设计小区物业管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…