当前位置: 首页 > news >正文

Mysql 的查询过慢如何排查以及优化

1.慢查询:

        (1).查看慢查询的日志文件有没有打开show variables like ‘slow_query_log’;
        (2).因为默认是没有开启的所以一般我们需要手动的去开启:set global slow_query_log=on;
        (3).查看慢查询的时间:show variables like ‘long_query_time’;
        (4).explain查看分析SQL执行计划:explain select * from log
        (5).通过explain分析具体是那一条sql的问题:explain 具体的sql语句

2.优化方式:
        (1).学会使用explain关键字分析查询语句的执行计划
        (2).在MySQL中,可以使用EXPLAIN关键字来分析查询语句的执行计划,以帮助优化查询性能。EXPLAIN语句返回一个描述查询执行计划的结果集,包括了查询的操作顺序、使用的索引、表之间的连接方式等信息。
        (3).是否索引失效了
        (4).是否进行了全表扫描
        (5).是否有select * 这种字段
        (6).表的结构是否存在问题
        (7).是否存在联表查询表的数量过多出现笛卡尔积这种

3.sql优化

        (1).插入数据

        insert : 批量插入、手动控制事务、主键顺序插入

        大批量插入:load data local infile.

        (2).主键优化:主键长度尽量短、顺序插入

              推荐使用 :AUTO_INCREMENT 

              不推荐:UUID

        (3).order by优化

        using index : 直接通过索引返回数据,性能高

        using filesort : 需要将返回的结果在排序缓冲区排序

        (4).group by 优化 : 索引,多字段分组满足最左前缀法则

        (5).limit 优化 :覆盖索引+子查询

       (6).count 优化 : 性能:count(字段)<count(主键 id) <count(1)<count(*)

             count(1)与count(*)相差不大。

        (7).update 优化:尽量根据主键/索引字段进行数据更新

        


http://www.mrgr.cn/news/26705.html

相关文章:

  • 利用apache-pdfbox库修改pdf文件模板,进行信息替换
  • LIMS:全方位管理实验室数据、仪器和工作流程
  • Java学习路线
  • 从零开始:AI产品经理的入门路线图
  • mysql的高级查询:函数的运用(日期/数字/字符/聚合)及分组查询
  • 初识软件测试
  • 秒懂:父子进程与bash(命令行参数)的关系
  • 对地观测期刊参考文献格式
  • 财谷通抖音小店的独特魅力
  • 【目标检测】labelimg图像标注软件的使用流程
  • RFID读写器:零部件加工中的高效识别与管理利器
  • mac nvm无法现在node版本问题(临时解决)
  • 高效执行自动化用例:分布式执行工具pytest-xdist实战
  • 文档团队如何组成?
  • Docker_启动redis,容易一启动就停掉
  • Apache Cordova开发教程-入门基础
  • Redis 数据类型
  • SAP自动化-ME12批量更新某行价格
  • 2024年城市客运安全员考试题库及答案
  • Prometheus监控系统部署及应用