- 优化shema、SQL语句
- 索引
- 缓存
- 主从复制,读写分离
- 数据拆分。垂直拆分,分布式;水平拆分,选择sharding key,改变表结构做一定的冗余,SQL语句尽量带sharding key
- 优化分页,减少加载的数据
优化分页:
- 子查询。比如,select * from table where age > 20 limit 1000000,10 改成
select * from table where id in (select id from table where age > 20 limit 1000000,10),索引覆盖,要查询的字段都在索引中
- 只允许逐页查询或者按照给定路线走,这样可预测。把可预测的提前查到数据放在缓存中
通过慢查询优化SQL语句,优化方向:没有命中索引,加载不需要数据,数据量太大
- 加载额外数据,又抛弃。优化语句
- 语句执行计划,查看使用索引的情况。修改语句或索引,尽可能命中索引
- 数据量太大,考虑拆分
数据库优化
原文:https://www.cnblogs.com/ivy-xu/p/12540638.html