数据库优化方案
前言
为什么需要对数据库进行性能优化? 答案是 数据库出现性能瓶颈
数据库出现性能瓶颈,对外表现有几个方面:
- 大量请求阻塞,在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处于阻塞状态。
- SQL 操作变慢,如果数据库中存在一张上亿数据量的表,一条 SQL 没有命中索引会全表扫描,这个查询耗时会非常久。
- 存储出现问题,业务量剧增,单库数据量越来越大,给存储造成巨大压力。
从机器的角度看,性能瓶颈无非就是CPU、内存、磁盘、网络这些,要解决性能瓶颈最简单粗暴的办法就是提升机器性能,但是通过这种方法成本和收益投入比往往又太高了,不划算,所以重点还是要从软件角度入手。
数据库性能优化方案
数据库优化方案很多,主要分为两大类:软件层面、硬件层面。
- 软件层面:SQL 调优、表结构优化、读写分离、数据库集群、分库分表等;
- 硬件层面:增加机器性能。
SQL 调优
SQL 调优往往是解决数据库问题的第一步,往往投入少部分精力就能获得较大的收益。
SQL 调优主要目的是尽可能的让那些慢 SQL 变快,手段其实也很简单就是让 SQL 执行尽量命中索引。
开启慢 SQL 记录
如果使用的是 Mysql,需要在 Mysql 配置文件中配置几个参数即可。
slow_query_log=on
long_query_time=1
slow_query_log_file=/path/to/log
调优的工具
常常会用到 explain 这个命令来查看 SQL 语句的执行计划,通过观察执行结果很容易就知道该 SQL 语句是不是全表扫描、有没有命中索引。
select id, age, gender from user where name =

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



