微微信.NET 为什么採用文件系统而不是数据库?
作者:互联网
近期接触的微微信.NET的朋友差点儿都会问我一个问题,“微微信.NET为什么不用数据库?”我总结了一下在这里给予大家解答。当然我写这些的目的不为证明文件系统比数据库更好。而是想说。对于有些应用採用文件系统是一个更优的选择:
平时能够感觉到的几个事实: 1 音乐、视频数据都是放在文件系统中、2 大图片文件是放到文件系统中的、3 小的配置文件,文件系统会比数据库的效率高出非常多
假定在程序效率和关键过程相当且不计入缓存等措施的条件下,读写不论什么类型的数据都没有直接操作文件来的快,不论MSYQL过程怎样,最后都要到磁盘上去读这个“文件”(记录存储区等效)。所以当然这一切的前提是仅仅读 内容,无关不论什么排序或查找操作.而微信应用符合这个特性。
微信的开发中的关键词回复是最适合于文件系统存储的应用: 这个是最适合于文件系统来存储的应用。直接将关键词命名为文件名称,直接解决搜索问题,每次的读写IO开销可能在1K以内,这是数据库系统做不到的,对于有些不适合于做文件名称的keyword。能够採取一种转义编码作为文件名称来实现存储。
除此之外,对于用户上传图片、语音的存储和管理也适合于採用文件系统管理。
对于一个应用系统若想使用文件系统取代数据库,首先须要设计出一个静止的数据存储结构。笔者看来,在NOSQL開始繁荣的今天文件系统存储是一种NOSQL应用的提现。文件系统必须足够静止才干解决并发冲突的问题。这就要求足够分散的文件。太多小文件对于传统的机械式硬盘来讲不是一个好主意。但如今SSD已经開始普及。用SSD做主存的server能够把文件系统读写的开销有效减少,假设你想获得更高的性能和更小的资源消耗,在中小型项目中使用文件系统取代数据库是个不错的选择。
微微信.NET採用文件系统作为存储系统另一个考虑就是由于 微微信.NET是纯的C#代码,所以 微微信.NET的系统直接能够在 Mono ASP.NET上部署使用。从而实如今 Linux、Unix 甚至安卓下执行(这个在未来是重要的。会有大量的android设备闲置,是一个变废为宝的好方法,我们对此已经展开研究会在兴许介绍: 基于废旧智能手机的云计算集群) 。
标签:存储,微微,採用,数据库,文件系统,NET 来源: https://www.cnblogs.com/mqxnongmin/p/10804787.html