为数据库添加外部缓存后的性能提升分析
数据库
指持久化数据库,如
- mysql
- mongodb
- redis
- memcached
- 命中率
- 缓存数据与数据库数据的一致性
用数学知识来分析这个问题,先设定几个关键的参数
- T(c):读一次缓存所需时间
- T(d):读一次数据库所需时间
- G:缓存命中率
T(c)*G + (T(c)+T(d))*(1-G)
增加数据库缓存的目标为提高数据读取速度,可以归结为一个表达式
T(c)*G + (1-G)*(T(c)+T(d)) < T(d)
等同于
T(c) - T(d)*G < 0
读取速度提升的比值为
(T(d)*G - T(c))/T(d)
假如,T(d)=50ms,T(c)=10ms,G=0.6,读取速度提升比值为
(50*0.6 - 10)/50 = 0.4
化为百分比也就是40%。
假如,T(d)=50ms,T(c)=10ms,G的值必须大于
G = T(c)/T(d) = 0.2
才能期望读取速度得到提升。
可以看出
【为数据库添加外部缓存后的性能提升分析】加入缓存不一定能够提升读取性能,这取决于缓存读取速度、数据库读取速度以及缓存的命中率。
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 为什么你的路演总会超时()
- 知识
- 财商智慧课(六)
- 低头思故乡——只是因为睡不着
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 吃了早餐,反而容易饿(为什么?)
- 你有婚内虐待行为吗()
- Android中的AES加密-下
- ?【段子图】内裤为啥湿呢(想想好邪恶啊...)