MySQL中如何进行SQL调优?

SQL调优的核心思路是减少磁盘I/O避免无效计算

主要就是先通过MySQL的慢查询日志定位慢SQL,再利用EXPLAIN分析执行计划,最后再进行针对性优化。

优化的手段主要有这几大类,分别是索引层面的优化SQL写法层面的优化 以及架构层面的优化

索引层面的优化

  • 合理设计联合索引,利用覆盖索引来避免回表。

  • 注意最左匹配原则。

  • 避免在索引列上做函数运算、隐式类型转换。

  • 及时删除荣誉索引和重复索引。

SQL写法层面的优化

  • 为了减少网络传输和内存占用,只对必要字段进行查询,不使用select *
  • 为了避免全表扫描,避免%LIKE这种前缀模糊查询
  • 连表查询时检查关联字段的字符集和排序规则是否一致,不一致会导致索引失效

架构层面的优化

  • 对于访问频率高但是变化少的数据使用Redis缓存
  • 对单表数据量超过2000万行或物理文件超过2G的大表进行分库分表
  • 搭建主从数据库集群,进行读写分离,让从库分担一些查询的压力
相关推荐
laplace01232 小时前
第八章 agent记忆与检索 下
数据库·人工智能·笔记·agent·rag
MyselfO(∩_∩)O2 小时前
1148. 文章浏览 I
数据库
少云清2 小时前
【性能测试】10_JMeter _JMeter连接数据库(重点)
数据库·jmeter
程序员敲代码吗2 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
小光学长3 小时前
基于SSM的个人健康系统26vxdh02(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
一名机电研究生3 小时前
电机驱动系统智能监测与故障预测技术指南:构建数据驱动的预防性维护体系
python·sql·诊断预测
林九生3 小时前
【MySQL/PostgreSQL】MySQL 到 PostgreSQL 数据迁移:Docker + pgloader
mysql·docker·postgresql
mit6.8243 小时前
sql窗口函数
数据库
七七七七073 小时前
【Redis】Ubuntu22.04安装redis++
数据库·redis·缓存