程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

面试题梳理:Mysql 可以做哪些优化?

balukai 2025-05-09 17:02:45 文章精选 7 ℃

Mysql的优化主要从四个方面做。

设计层面的优化

  1. 合适的引擎、合适的字段、合适的长度、合适的类型、合适的预设索引 冗余字段,减少联表查询
  2. 控制索引数量,索引会占用资源
  3. 不要在更新频繁的字段上加索引
  4. 索引覆盖原则,减少回表,减少随机IO,尽可能的使用联合索引
  5. 选择基数大的字段创建索引

业务层面的优化

  1. 数据库连接池大小优化 缓存,减少对Mysql的压力 SQL编写的优化,比如避免使用select * 、where 1=1、非常复杂的SQL等等
  2. 批量提交,不要循环提交数据
  3. 拆解大事务,不要在事务里做其他耗时的操作
  4. 联表查询,联表字段一定要有索引,同时小表驱动大表
  5. 不要在索引上进行计算,索引失效退化、全表扫描
  6. 从设计层面规避深度分页问题

软硬件层面的优化

Mysql本质就是一个提供了读写能力的Server,自身存在很多的配置参数,以及依赖IO相关资源,可以做以下优化:

  1. 硬件升级,机械硬盘换SSD;云盘换本地盘
  2. 配置调整,刷盘频率、刷盘时机、线程数、连接数、缓冲区大小等等

数据架构层面的优化

  1. 读写分离
  2. 分库分表
  3. 冷热分离
最近发表
标签列表