MySQL中如何进行SQL调优?

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

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

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

索引层面的优化

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

  • 注意最左匹配原则。

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

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

SQL写法层面的优化

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

架构层面的优化

  • 对于访问频率高但是变化少的数据使用Redis缓存
  • 对单表数据量超过2000万行或物理文件超过2G的大表进行分库分表
  • 搭建主从数据库集群,进行读写分离,让从库分担一些查询的压力
相关推荐
zxrhhm17 小时前
Oracle INSERT ALL 多表多行插入语法详解
数据库·oracle
zzhongcy17 小时前
Flyway 数据库版本管理工具使用指南
数据库·人工智能
志栋智能17 小时前
效率革命:超自动化巡检如何将小时压缩为分钟?
运维·数据库·自动化
十年编程老舅18 小时前
Linux NUMA架构深度剖析:内存管理、进程调度与性能优化
linux·数据库·c++·内存管理·numa
fly_over18 小时前
AI Agent 开发实战教程(三):记忆与数据库集成
数据库·人工智能·python·ai agent
zhulangfly18 小时前
# Spring Boot + MinIO + MySQL + Vue 实现视频管理与流式播放
vue.js·spring boot·mysql
罗超驿18 小时前
14.MySQL索引底层原理:从数据结构到B+树的深度解析
数据结构·b树·mysql
罗超驿18 小时前
15.面试高频考点:MySQL索引底层原理与实战要点全梳理
mysql·面试·职场和发展
_Evan_Yao18 小时前
从 select 到 epoll,再到 Agent 循环:如何用 I/O 多路复用撑起千军万马?
java·数据库·人工智能·后端
鸽芷咕18 小时前
金仓数据库字符集与国际化支持:多语言环境下的编码处理方案
数据库·oracle