admin 管理员组文章数量: 886993
微微信.NET 为什么采用文件系统而不是数据库?
最近接触的微微信.NET的朋友几乎都会问我一个问题,“微微信.NET为什么不用数据库?”我总结了一下在这里给予大家解答,当然我写这些的目的不为证明文件系统比数据库更好,而是想说,对于有些应用采用文件系统是一个更优的选择:
平时可以感觉到的几个事实: 1 音乐、视频数据都是放在文件系统中、2 大图片文件是放到文件系统中的、3 小的配置文件,文件系统会比数据库的效率高出很多
假定在程序效率和关键过程相当且不计入缓存等措施的条件下,读写任何类型的数据都没有直接操作文件来的快,不论MSYQL过程如何,最后都要到磁盘上去读这个“文件”(记录存储区等效),所以当然这一切的前提是只读 内容,无关任何排序或查找操作.而微信应用符合这个特性。
微信的开发中的关键词回复是最适合于文件系统存储的应用: 这个是最适合于文件系统来存储的应用,直接将关键词命名为文件名,直接解决搜索问题,每次的读写IO开销可能在1K以内,这是数据库系统做不到的,对于有些不适合于做文件名的关键字,可以采取一种转义编码作为文件名来实现存储。
除此之外,对于用户上传图片、语音的存储和管理也适合于采用文件系统管理。
对于一个应用系统若想使用文件系统代替数据库,首先需要设计出一个精巧的数据存储结构。笔者看来,在NOSQL开始繁荣的今天文件系统存储是一种NOSQL应用的提现。文件系统必须足够精巧才能解决并发冲突的问题,这就要求足够分散的文件,太多小文件对于传统的机械式硬盘来讲不是一个好主意,但现在SSD已经开始普及,用SSD做主存的服务器能够把文件系统读写的开销有效降低,如果你想获得更高的性能和更小的资源消耗,在中小型项目中使用文件系统代替数据库是个不错的选择。
微微信.NET采用文件系统作为存储系统还有一个考虑就是因为 微微信.NET是纯的C#代码,所以 微微信.NET的系统直接可以在 Mono ASP.NET上部署使用,从而实现在 Linux、Unix 甚至安卓下运行(这个在未来是重要的,会有大量的android设备闲置,是一个变废为宝的好方法,我们对此已经展开研究会在后续介绍: 基于废旧智能手机的云计算集群) 。
导读: 下面有几篇关于文件系统与数据库效率比较的文章
★读配置文件、读数据库数据哪个效率高?★ 读写文件与读写数据库的效率比较
.html
★ 磁盘读写和数据库读写哪个效率更高?磁盘读写与数据库的关系
.html
★ 保存图片到数据库还是文件系统
.shtml
最后 广告一下 : 完整的 微微信.NET 可以在这里找到 udoo123.taobao
本文标签: 微微信NET 为什么采用文件系统而不是数据库
版权声明:本文标题:微微信.NET 为什么采用文件系统而不是数据库? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732354200h1533961.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论