数据库-非关系数据库存取数据之间为什么要压缩解压缩?
存取数据之前压缩解压缩可以缩小内存、硬盘空间占用率。但压缩算法是非常时、耗CPU、耗内存的。很多游戏的瓶颈在IO上,处理不过来造成人数增多后,游戏反应迟钝。为什么要这么设计呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
存取数据之前压缩解压缩可以缩小内存、硬盘空间占用率。但压缩算法是非常时、耗CPU、耗内存的。很多游戏的瓶颈在IO上,处理不过来造成人数增多后,游戏反应迟钝。为什么要这么设计呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
数据压缩存储可以减小存储,提升IO性能,并且能够提升网络IO性能,虽然采用压缩后,会更消耗CPU,但CPU消耗是可以扩展的,当然网络IO性能也是可以扩展的,主要看当系统达到瓶颈以后,实现相同的效果,扩展那一项性能更为方便以及经济实惠吧,扩展CPU性能相对来说应该简单实惠一些。
我觉得这个没有说一定要压缩好,还是原始数据好。如果IO没有达到瓶颈,最好不要压缩,这样不利于数据恢复,还有数据分析。
这个和网页的道理是一样的,No-SQL数据服务和HTTP服务没有太大的本质差别,既然现在服务器主流都采用了gzip和deflate,为什么NO-SQL不用呢……解压缩的代价其实很小的,如果因为解压缩数据导致运算跟不上,我觉得是因为取了太多无关的数据了吧。
这样虽然稍微占用了一些CPU,但是换来的是更高的带宽利用率和IO性能提升,对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。
个人觉得当有较多的用户(前提硬件满足),开启它会明显使速度提高。(提升速度的同时,就是牺牲系统资源,所以如果服务器的配置不是太好,或者用户规模上不去,压缩还需要小心权衡一下)