首页 > 数据库 >mysql索引优化

mysql索引优化

时间:2024-09-06 10:16:42浏览次数:5  
标签:121958911 where 查询 blog 索引 mysql 优化 order

 

 

1.联合索引,注意最左匹配原则:必须按照从左到右的顺序匹配,MySQL会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。

2.查询记录的时候,少使用’*’,尽量去利用索引覆盖,可以减少回表操作,提升效率。

3.有些查询可以采用联合索引,进而使用到索引下推,也可以减少回表操作,提升效率。

4.禁止对索引字段使用函数、运算符操作,这样将会使索引失效。

5.字符串字段和数字比较的时候会使索引无效。

6.模糊查询’%值%'会使索引无效,变为全表扫描,但是’值%'这种可以有效利用索引。

7.排序中尽量使用到索引字段,这样可以减少排序,提升查询效率。

————————————————

 

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/weixin_46370070/article/details/108051195

 

 

1.对于连续单调的字段用limit时,可以采用子查询的方式来提升在大数据量下的分页性能

    2.对于不连续单调的字段用limit时,可以采用正序查询和倒序查询,或者做连续单调映射表的方式来提升大数据量下的分页性能

    3.当order by和limit混合使用时,可能会出现排序结果和预期不一致,这个时候需要按照官方文档的说明,在order by的字段中加上一个唯一字段。

    4.order by的字段无索引,必出现filesort

    5.order by的字段有索引且走索引覆盖才不会出现filesort

    6.where 和 order by一起使用时,where的字段和order by的字段都建立了索引,且不是联合索引,会导致order by的索引失效,出现filesort

    7.where 和 order by一起使用时,where的字段和order by的字段应该建立了索引,且索引顺序和where 和 order by的顺序一致,且select的字段不包含不在索引中的字段,这样的性能是最优的

 

————————————————

 

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/Fanzongshen/article/details/121958911

 

https://blog.csdn.net/Fanzongshen/article/details/121958911?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-121958911-blog-51849559.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-121958911-blog-51849559.235%5Ev43%5Epc_blog_bottom_relevance_base4&utm_relevant_index=5

标签:121958911,where,查询,blog,索引,mysql,优化,order
From: https://www.cnblogs.com/zhangbao3/p/18399710

相关文章

  • 美团面试:mysql 索引失效?怎么解决? (重点知识,建议收藏,读10遍+)
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • mysql分库表实现大宽表逻辑-canal/es
    大宽表落地背景mysql分库分表后,很多页面查询操作不走分片键,会导致数据库压力很大,查询效率极低的问题场景设计:设计一张索引表,以下叫大宽表,将需要查询的业务字段放到一张表解耦业务逻辑,业务不需主动维护此表利用canal-admin/canal-developer/canal-adatper+rocketMq......
  • Python使用MySQL数据库
    安装MySQL-python要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。下载地址:https://pypi.python.org/pypi/MySQL-python/下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:>>python setup.py install ......
  • Mysql高级篇(上)—— Mysql架构介绍(二)
    Mysql高级篇(上)MySQL架构介绍(二)逻辑架构逻辑架构剖析MySQL8.0中SQL执行流程Linux环境下MySQL8.0中SQL执行原理MySQL语法顺序Oracle中SQL执行流程(了解)数据库缓存池bufferpool(了解)存储引擎常见存储引擎简述InnoDB和MyISAM两种存储引擎的特点对比MySQL架构介绍(二)......
  • MySQL中 VARCHAR 可设置的最大长度是多少?
    在使用MySQL的过程中,在存储字符串时,大家或许都有过这样或那样的困惑,譬如:1. 对于固定长度的字符串,为什么推荐使用CHAR来存储?2. VARCHAR可设置的最大长度是多少?3. 给定一个字符串,怎么知道它的空间使用情况?4. 创建索引时,提示“Indexcolumnsizetoolarge.Themaxim......
  • MySQL 源码|67 - 语法解析(V2):数值字面值|V20240905
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):/sql/sql_yacc.yy前置文档:MySQL源码|33-语法解析:bison基础语法规则根据MySQL源码|21-词法解析:状态转移逻辑梳理中梳理的MySQL词法解析逻辑,有如下终结符与数值相关:终结符名称终结符表示内容NUM......
  • mysqldump命令详解
    在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具;它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来。 语法:默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-......
  • mysql主备环境同机搭建
    社区版下载地址:downloads.mysql.com/archives/community/原包 ##解压[root@prdb19u01]#tar-xvfmysql-8.4.0-linux-glibc2.28-x86_64.tar.xzmysql-8.4.0-linux-glibc2.28-x86_64/bin/mysql-8.4.0-linux-glibc2.28-x86_64/bin/myisam_ftdumpmysql-8.4.0-linux-glibc......
  • 基于鱼群算法的散热片形状优化matlab仿真
    1.课题概述使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进行优化。从而得到最佳的孔隙度值和H对应......
  • docker部署mysql8主从
     一、拉取mysql镜像dockerpullmysql 二、创建容器#主库dockerrun-itd-p3306:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-mastermysql#从库dockerrun-itd-p3307:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-slavemysql 三、配置主库[m......