Bitmap 最佳实践和使用手册 9 - 注意事项

注意事项

10.1 id 范围

理论上支持 0~2^64-1,但是超过2^63后,会有些问题,比如bitmap_to_array,当前我们只支持array<bigint>,这时候会转成负数

10.2 内存和空间占用

ID 范围越大,内存和磁盘空间占用一般越大。

内存和磁盘空间占用,还与 ID 的稀疏程度有关。下面是一些模拟测试。

设计 Bitmap 需要考虑这个因素。

random_value_count start end mem usage disk size (v1)
10000 1 5000000000 350K 94K
100000 1 5000000000 2.1M 647K
1000000 1 5000000000 4.9M 2.6M
10000 1 200000000 104K 43K
100000 1 200000000 377K 224K
1000000 1 200000000 2.8M 2M
10000 1 100000000 63K 32K
100000 1 100000000 293K 212K
1000000 1 100000000 2.3M 2M
10000 1 10000000 20K 21K
100000 1 10000000 230K 200K
1000000 1 10000000 1.2M 1.2M

10.3 bitmap 导出问题

大Bitmap直接导出有可能触发Mysql包的限制,最好是使用 subdivide_bitmap 将大 Bitmap 拆成100万1个小Bitmap再导出

2赞