# 存储空间评估实践

| 集群数 | 表总数 | 平均行数 | 平均字段 | 平均索引数 | Buffer | 当前数据量 |
|:-------|:-------|:---------|:---------|:-----------|:-------|:-----------|
| 5      | 1000   | 4000w    | 55       | 6          | 1.3    | 70TB       |

|                  | Aurora | TiDB  |
|:-----------------|:-------|:------|
| 压缩率           | 1      | 0.21 |
| 索引空间占比     | 0.78   | 0.78 |
| 副本数           | 1   | 3 |
| 存储空间冗余比例 | 0%   | 20% |

+ 业务数据存储空间占用量 = 
( 当前数据量 x Buffer  x 副本数 x 压缩率 ) / (1 - 存储空间冗余比例 ）=
(  70TB    x  1.3    x   3   x 0.21  ) / (1 -     20%       )  ≈  55.1 TB

+ 需要 TiKV 存储空间为：
Ceil(业务数据存储空间占用量/单实例存储大小)
Ceil(    55.1          /     4      ) = 15

+ 需 TiKV 存储节点数：15 台（配置：8C 32GB 4TB / 存储空间冗余比例：80%）

----------------------------------------------------
首先和业务测试了该业务数据在 TiDB 的压缩率为 0.21（基于业务实际测试），通过 Aurora 统计信息看到，索引长度/数据长度 = 0.78

单份数据存储使用空间估算：400亿 * 1.3(Buffer)* （842 = 数据平均长度475B + 索引平均长度 367B）≈ 43 TB

TiDB 存储空间使用估算：43 * 3 * 0.21 *(1+0.78)≈ 48 TB

按照主流 TiKV 配置 8C_32GB_4TB 和 80 % 空间使用率算，需要 TiKV 存储节点数和存储空间为：15台、60TB
