Mysql索引优化建议

1,最左前缀法则

如果为一张表创建了多列的组合索引,要遵守最左前缀法则。就是指查询从索引的最左前列开始并且不要跳过索引中的列。(因为Mysql的InnoDB引擎的索引树是一个按顺利排序存储的数据结构(B+TREE),如果是组合索引就会按照最左边的那个字段进行ascll码排序,假如第一个字段值相同则会是同第二个字段,以此类推

2,不在索引列上做任何计算、函数、类型转换,可能会导致索引失效而升级为全表扫描

举例子:select * from user where min(age) = 30;

3,尽量使用覆盖索引(访问查询索引的字段),减少 select * 语句

比如:一个用户表中name,age都有索引。

select name,age from user where name ='angy' and age =30;

4,Mysql 在使用不等于(!=或者<>),not in , not exists的时候无法使用索引会导致全表扫描

举例子:select * from user where age != 30;

5,在使用is null , is not null 一般情况下也无法使用索引。

举例子: select * from user where name is null;

6,使用like进行模糊查询时,以通配符开头('%abc..')mysql索引失效会变成全表扫描操作。(如果硬要这么做,可以使用外部的搜索引擎辅助)

举例子: select * from user  where name like '%angy';

7,查询字段是字符串如果不加引号索引失效

举例子:select * from user where name = 1000;(正确写法 select * from user where name = '1000';)

8,少用or或in,用它查询时,mysql不一定使用索引,是否使用索引会根据mysql优化器做出选择。

如果要检查mysql查询语句是否使用到索引,访问类型可以使用explain进行分析

举例子: explain select * from user where  ange = 40;

感谢阅读。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看论文利器:paperswithcode

paperswithcode&#xff0c;从名字就可以看出来&#xff0c;有源代码的paper。 写论文&#xff0c;很关键的就是能够复现论文内容。 这个网站提供了“论文代码”的参考文献。 以【图像加密】领域为例&#xff0c;搜索一下&#xff1a; 图像分割&#xff1a; 除了论文&#x…

python实现全国省份下城市气温分析计算,基于随机森林模型完成气温预测分析与对比可视化

2023年马上就要步入尾声了&#xff0c;在这年末时刻&#xff0c;各地纷纷下起了大雪&#xff0c;温度也是骤降&#xff0c;这也难挡大家出行的热情&#xff0c;我很快也要加入出行的大军&#xff0c;朝着心中的归宿前行。 正好今天有点时间就想着以温度为切入点做点有趣的工作…

Linux实验记录:使用BIND提供域名解析服务

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 为了降低用户访问网络资源的门槛&am…

【论文阅读笔记】Advances in 3D Generation: A Survey

Advances in 3D Generation: A Survey 挖个坑&#xff0c;近期填完摘要 time&#xff1a;2024年1月31日 paper&#xff1a;arxiv 机构&#xff1a;腾讯 挖个坑&#xff0c;近期填完 摘要 生成 3D 模型位于计算机图形学的核心&#xff0c;一直是几十年研究的重点。随着高级神经…

SpringBoot中的WebMvcConfigurer

SpringBoot中的WebMvcConfigurer 一、WebMvcConfigurer二、页面跳转控制器三、数据格式化1.Formatter\<T>2.内容转换器 四、拦截器 一、WebMvcConfigurer WebMvcConfigurer 作为配置类&#xff0c;采用 JavaBean 的形式来代替传统的 XML 配置文件形式&#xff0c;进而针…

rclone基础命令解析及实战

rclone命令解析及实战 1 rclone介绍&#xff1a;远程同步工具 rclone是一个开源的远程数据同步工具&#xff0c;由Golang编写&#xff0c;旨在在不同平台的文件系统和多种类型的对象存储产品之间提供数据同步功能。 它支持超过 40 种不同的云存储服务&#xff0c;包括 Amazon S…

Qt环境搭建+简单程序实现

Qt是什么 Qt是一个跨平台的C图形用户界面应用程序框架。 框架的本质就是一群大佬发明的让菜鸡写出来的代码也也比较规范 也就是限制程序员的自由&#xff0c;让程序员写出来的代码规范。 库和框架有相似性。 库是被程序员调用的&#xff0c;&#xff08;程序员是主体&…

【已解决】青龙面板依赖安装失败原因

青龙面板必须安装依赖&#xff0c;才可以执行脚本&#xff0c;这是不争的事实。 如果脚本跑不起来&#xff0c;就去看看依赖吧。 NodeJs 依赖如下 axios request canvas cheerio js-base64 dotenv magic tough-cookie ws7.4.3 require requests date-fns ts-md5 typescript j…

已解决error: subprocess-exited-with-error

已解决&#xff08;pip安装第三方模块lxml模块报错&#xff09;Building wheels for collected packages: lxml Building wheel for lxml (setup.py) … error error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully. note: This error o…

Polar-Net:通过 OCTA(光学相干断层扫描血管成像)检测阿尔茨海默病

通过OCTA&#xff08;光学相干断层扫描血管成像&#xff09;检测阿尔茨海默病 主问题&#xff1a;如何通过OCTA图像有效地检测阿尔茨海默病&#xff1f;子问题1&#xff1a;如何在深度学习模型中模拟临床实践中常用的区域基础分析方法&#xff1f;子问题2&#xff1a;如何在网络…

【字符串】字典树

字典树就是利用一个这样的树状结构&#xff0c;可以记录字符串有没有出现过 放个板子 int nxt[100000][26], cnt; bool st[100000]; // 该结点结尾的字符串是否存在 void insert(string s, int l) // 插入字符串&#xff0c;l是字符串长度 { int p 0;for (int i 0; i < …

Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(九)

原文&#xff1a;Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 附录 A&#xff1a;机器学习项目清单 此清单可以指导您完成机器学习项目。有八个主要步骤&#xff1a; 构建问题并全局看问题。 …