8大数据库性能优化方案,YYDS!
Java技术迷
共 7136字,需浏览 15分钟
·
2022-07-01 11:25
点击关注公众号,Java干货及时送达
作者:陈珙
来源:www.cnblogs.com/skychen1218/p/16059148.html
毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。
为什么数据库会慢?
查找的时间复杂度 数据总量 高负载
查找算法 存储数据结构
应该站在哪个层面思考优化?
八大方案总结
减少数据量
数据归档
中间表(结果表)
字段越多,粒度越细,灵活性越高,可以以中间表进行不同业务联表处理。 字段越少,粒度越粗,灵活性越低,一般作为结果表查询出来。
数据序列化存储
分库分表
分库分表是实在没有办法的办法,应放到最后选择。 优先选择 NoSQL 代替,因为 NoSQL 诞生基本上为了扩展性与高性能。 究竟分库还是分表?量大则分表,并发高则分库 不考虑扩容,一部做到位。因为技术更新太快了,每 3-5 年一大变。
拆分方式如下图:
路由方式如下图:
用空间换性能
分布式缓存
、一主多从
。分布式缓存
①避免滥用缓存
②避免缓存击穿
③不是所有慢查询都适用
一主多从
选择合适的存储系统
CQRS
数据同步方式
推指的是由数据变更端通过直接或者间接的方式把数据变更的记录发送到接收端,从而进行数据的一致性处理,这种主动的方式优点是实时性高。 拉指的是接收端定时的轮询数据库检查是否有数据需要进行同步,这种被动的方式从实现角度来看比推简单,因为推是需要数据变更端支持变更日志的推送的。
替换(选择)存储系统
结束
评论