如何发挥一个字节的极限,存储大量内容
2016-10-19 11:38
225 查看
在当前的硬件发展阶段,存储空间已经是非常廉价的了,普通硬盘都是以T来计量,内存以G来计量,服务器内存16G,64G已经普及,所以我们在开发的时候,很少去考虑数据是否有足够的空间存储。
可以定义成byte,short的字段,我们为了方便,会定义成int,这对业务来讲,并没有什么区别。甚至会定义成varchar,完全不用考虑空间是否有浪费。
但是在某些特殊业务场景,对性能和网络传输有苛刻的要求时,我们需要使用最小的空间存储最多的内容。
业务场景:
一个设备有8个插口,每个插口有一个状态(可用,不可用),一个字节是8位,
假如1号,4号,5号,7号插口可用,2号,3号,6号,8号插口不可用,
那么二进制数据是"10011010",转换成2进制就是154,转成16进制就是9A,那么我们只需要存储9A就可以代表当前这个设备8个插口的状态。
"10011010"也可以每两位表示一个值,每两位转成10进制就是2122,再转成16进制是84A
可以定义成byte,short的字段,我们为了方便,会定义成int,这对业务来讲,并没有什么区别。甚至会定义成varchar,完全不用考虑空间是否有浪费。
但是在某些特殊业务场景,对性能和网络传输有苛刻的要求时,我们需要使用最小的空间存储最多的内容。
业务场景:
一个设备有8个插口,每个插口有一个状态(可用,不可用),一个字节是8位,
假如1号,4号,5号,7号插口可用,2号,3号,6号,8号插口不可用,
那么二进制数据是"10011010",转换成2进制就是154,转成16进制就是9A,那么我们只需要存储9A就可以代表当前这个设备8个插口的状态。
"10011010"也可以每两位表示一个值,每两位转成10进制就是2122,再转成16进制是84A
相关文章推荐
- 如何从系统相册提取一张照片,然后将其内容存储到一个事先准备好的文件中去
- 如何把一个图像存储到XML数据中,并读取出来
- 如何创建一个简单的JAVA存储过程
- 如何设置一个style做一个属性触发去改变其他的属性值<style的相关内容>?
- MySQL如何存储图片?---一个向数据库存取image文件的jsp程序
- 如何将几个DBGRID里的内容导入同一个EXCEL表中?
- 如何把一个图像存储到XML数据中,并读取出来?
- 如何在750M的CDROM上存储几个G的内容
- 如何调整一个 IFrame 到其内容的大小不显示滚动条[微软帮助]
- 如何把一个字段中的重复内容列出来?
- 如何将几个DBGRID里的内容导入同一个EXCEL表中?
- 如何创建一个简单的JAVA存储过程?[转贴]
- 如何将一个加密连接字符串存储在注册表中
- 如何在TabControl中响应右键鼠标(添加一个ContextMenu就可以了),如何让在tab标签处右键菜单和在内容处右键菜单显示不同的菜单?
- 如何用一个数据库的数据去更新另一个数据库的内容
- 如何遍历显示一个枚举的内容
- 请问如何用四个字节的十六进制表示一个float浮点数
- SQL存储过程参数内容通过XML格式传送,把所有SQL语句操作放到一个存储过程里
- 请问vb.NET中如何打印一个某一固定区域的内容?
- 再来一个分页的存储过程,这可比别的好多了,就是不知速度如何!