欢迎投稿

今日深度:

童家旺:如何用分表存储来提高性能(1)(2)

童家旺通过阿里巴巴的真实应用场景介绍了如何用分表存储来提高性能。

一、场景介绍:

二、要求:

三、性能分析

1、每块记录数

8192 * 0.80(1) / 250 = 25.5 (主表)

8192 * 0.80 / 2000 = 3.27(详情表)

8192 * 0.80 / ( 2000 + 250 ) = 2.91

2、访问的逻辑IO(内存块访问)

List的查询代价

改进后=( 300/25.5 ) * y + 4 + x = 4 + x + 11.8y = 4(2) + 7(3) + 11.8 * 1.5(4) = 28.7

改进前=( 300/2.91 ) * y + 4 + x = 4 + x + 103.y = 4 + 7 + 103 * 1.5 = 165.5

3、访问涉及到的物理读(磁盘块访问)

List的查询代价(逻辑IO * ( 1 – 命中率 ))

改进后=28.7 * ( 1 – 0.85(5)) = 4.305

改进前=165.5 * ( 1 – 0.85 ) = 24.825

4、访问时间(ms)

改进前=逻辑IO时间+物理IO时间= 28.7 * 0.01(6) + 4.305 * 7(7) = 30.422ms

改进后=逻辑IO时间+物理IO时间= 165.5 * 0.01 + 24.825 * 7 = 175.43ms

场景

要求

方案

注意事项

参考缓存工具

MemCached, Tair, Redis


www.htsjk.Com true http://www.htsjk.com/shujukugl/17822.html NewsArticle 童家旺通过阿里巴巴的真实应用场景介绍了如何用分表存储来提高性能。 一、场景介绍: 二、要求: 三、性能分析 1、每块记录数 8192 * 0.80(1) / 250 = 25....
评论暂时关闭