如何存下40亿个不重复数字

如何存下40亿个不重复数字?作为一名数据工作者,你会如何设计表模型呢,带着这个问题我们一起来探索最佳方案。

常见数据类型

在深入理解这个问题之前,我们需要先回忆一下几个基础知识。

1 bit(比特) = 1个2进制数

1 byte(字节) = 8个2进制数 = 8 bit

基于上述知识,我们就可以理解数据库中数据类型的存储大小和取值范围了。

名称 存储大小 取值范围
SMALLINT 2字节 -32768 ~ +32767
INTEGER(别名INT或INT4) 4字节 -2147483648~+2147483647
BIGINT(别名INT8) 8字节 -9223372036854775808~+9223372036854775807

从上表我们可以看出,40亿这个数字已经超出了INTEGER类型的最大范围,所以只能选择BIGINT类型。

采用数据表行存储

最简单粗暴的方式,创建一张数据表只有一个字段,生成40亿个不重复的数字并循环写入数据表,一个数字作为一条记录。


上表给出了10的各个数量级下数据表的大小趋势图,当测试数字量达到100万时,数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值