数据存储的学问

缘起

硬盘、内存中存储了大量的数据,网络上也在传输这大量的数据;如果仔细分析,很多数据是重复的;如果能对这些数据做精心的设计,会节省很多的硬盘、内存和网络带宽。

举个栗子

我在设计一个用户的回话信息的存储时,发现对会话的创建时间、过期时间这个时间信息pack成4字节的二进制会比10字节的时间戳小不少,我很高兴;但是仔细观察发现,其实里面还是有信息重复的:

1. 每个会话的创建时间不可能早于我的建站时间,比如:2010年10月1号,则这部分信息是重复的; 于是我可以将会话创建时间存储为一个相对于 2010年10月1号的相对时间,这个数字其实小了很多

2. 会话的过期时间总是要大于创建时间的,于是,对于会话的过期时间完全可以存储为相对于创建时间的一个数字

3. 内网IP信息如何处理?如果把内网IP简单当作IP来处理,则IP最短需要4个字节(这里以IPv4为例),如果考虑到是“内网”IP,其实3个字节足矣;如果公司很小,其实只有几个IP,做个对照表的话,1个字节就够了

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据