【成为架构师3-8】数据库:如何提升数据库的读性能

本文介绍了如何提升数据库的读性能,包括建立适当的索引,增加从库实现读写分离,以及利用缓存提高响应速度。同时,强调了数据库设计应考虑业务模式和访问模式,并探讨了不同优化策略带来的运维成本和一致性问题。

系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

前面的七篇文章,从思路和方法论的角度介绍了微服务中的粒度、高可用、高并发、负载均衡以及微服务的重要组件连接池的一些基本问题。

在系统架构中,最容易先成为瓶颈的往往是持久层,后续的文章将会对如何进行数据库的架构进行思路上的梳理。

本篇的内容主要是数据库读性能的提升和引出数据库设计要考虑哪些问题。

数据库如何设计

沈老师常说的一句话:“任何脱离业务的架构,都是耍流氓”。

数据库的设计主要就是两个方面:库表设计、索引设计,而它们的设计指导:

  1. 根据“业务模式”,设计库表结构
  2. 根据“访问模式”,设计索引结构
读性能如何提升

提升读性能,最先想到的就是建立索引,但它也有潜在的问题:

  1. 写性能降低,每多建立一个索引,就会多一棵B+树,那么写操作的时候,就会涉及到更多的B+树,物理层面就是更多的数据页
  2. 索引占用内存大(如果建立了过多的索引,有些还是不常用的),buffer命中率降低,读性能降低
为不同实例,建立不同的索引

在这里插入图片描述
如图就是,主库只负责写入,所以不需要索引,对线上提供服务的索引,建立了uid的索引,为线下操作(比如简单的统计分析,后台访问等)提供服务的还要建立一些其它的索引。

当然,这会造成运维上的成本,不同的实例不同的索引设计需要额外的管理成本。

增加从库

这是首先很容易想到的方式,读写分离的主从架构的目的就是为了扩展读性能,这一方案已经在前面的文章多有提及

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值