《极客时间》学习笔记
如何搭建高性能、高可用的MySQL架构
- 主从同步:数据冗余、集群搭建、数据备份;
- 读写分离:减少加锁、提高读写效率;
- 分库分表:数据表扩容、专库专用、垂直拆分;
- 数据库优化:慢SQL查询、SQL执行计划;
- 去中心化:心跳机制、虚拟IP、防止单点灾难。
多级缓存的实现
双写优势,多个数据表可以异构到一个表
若采用MQ或binlog 则只能通过监听订单表,并再异构时反查数据库获取订单详情表数据,
才能实现完整的数据异构,不仅增加数据库查询压力也增加了复杂度
缓存设计采用的是保持用户N条记录,当查N+1时会出现缓存穿透查询数据库,数据库是全量数据
由于双写存在数据不一致问题,数据订正很重要
每几分钟进行一次增量校对,每晚进行一次全量校对,保证数据一致
若缓存查询命中率很高,用限定性查询,不在范围内的查询数据库