【转】数据库优化的几个阶段
转自: https://www.cnblogs.com/rjzheng/p/9619855.html#4365629 引言 大家在面试的时候,是否遭遇过,面试官询问 你们是如何进行数据库优化的? 那这个问题应该怎么答呢?其实写这个题材的原因是我这几天看到各公众号转的一篇数据库调优的知识(不上链接了),我就稍微翻了几下,上面动不动就来说要对数据库进行 水平拆分 ,我就想反问各位读者,你们几个人经历过 水平拆分 ?现在很多文章,实践性实在太差,只能说纯理论分析。 这篇文章最早来自知乎的一个提问,我在其基础上完善了一下。 第一阶段 优化sql和索引 这才是调优的第一阶段啊, 为什么呢? 因为这一步成本最低啊,不需要加什么中间件。你没经过索引优化和SQL优化,就来什么 水平拆分 ,这不是坑人么。 那 步骤 是什么样呢?我说个大概 (1)用慢查询日志定位执行效率低的 SQL 语句,开启慢查询日志方式: (2)用 explain 分析 SQL 的执行计划 (3)确定问题,采取相应的优化措施,建立索引啊,等 我就不举例了,因为如何优化SQL的文章,一抓一大把,再贴过来,读者看着也累。 第二阶段 搭建缓存 在优化sql无法解决问题的情况下,才考虑搭建缓存。毕竟你使用缓存的目的,就是将复杂的、耗时的、不常变的执行结果缓存起来,降低数据库的资源消耗。 这里需要 注意 的是:搭建缓存后