从零开始学架构 02-高性能架构模式 【笔记】

高性能架构模式
1. 读写分离

集群模式下主机写,从机读,即通过复制将数据同步到从机。
读写分离可以使用代码封装或中间件封装

  • 代码封装淘宝的tddl
  • 中间件,mysql-proxy、mysql router、atlas

解决主从复制的延迟的几种方法

  • 写操作后的读操作指定发给数据库主服务器
  • 读从机失败后再读一次主机
  • 关键业务读写操作全部指向主机,非关键业务采用读写分离
2. 分库分表

数据量大时,数据库会遇到瓶颈。此时读写性能下降,索引性能也会下降,备份和恢复时间较长。

分表

  • 垂直分表
    主子表,不常用,且字段较长的数据可以分表
  • 水平分表
    如历史表,如何切分子表,按照路由方式分
    • 范围路由,id在一段内,一般在100w-2000w间。缺点:分布不均
    • hash路由,列值除法余数,优点分布均有。缺点:扩充新表麻烦,所有数据都要重新分布
    • 配置路由,单独表配置用户和表的对应,灵活。缺点:每次查询均多查一次,如路由表太大则会遇到瓶颈

分库分表后出现的问题及解决

  • join操作:因为不同库,无法使用
    • 解决方案:可多次查询后合并
  • count汇总:多次查询后相加,效率低
    • 解决方案:可以做一个记录表,定时更新记录表里面的值,order by汇总后排序
  • 分布式事务:多库同时保存的问题
    • 解决方案:两阶段提交或三阶段提交
  • 成本问题:可能涉及到服务器增加,导致成本上升
总结

高性能架构主线通过读写分离,分库分表进行解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值