当前位置:嗨网首页>书籍在线阅读

03-选择数据存储

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

8.1.1 选择数据存储

在选择服务器存储方案时,可选项有很多,举几个来说:关系型数据库、key/value存储以及NoSQL数据库。但哪个是最好的选择呢?就像生活中的很多问题一样,答案是“视情况而定”。我们开发过的一些 Web 应用,针对不同的用途,同时使用了好几个数据库。很多人已经编写了论述各种数据存储优点的书籍,比如关系型数据库(像MySQL)、key-value存储(像memcached)、图形数据库(像Neo4J)或者文档数据库(像Cassandra或者MongoDB)。讨论这些解决方案的优缺点已经超出了本书范围,不过作者们都倾向不可知论,认为每一种方案都有各自的用武之地。

想象一下,我们创建了一个字处理单页应用。对于大批量的文件,可以使用循环文件系统的数据存储,使用 MySQL数据库对它们进行索引。另外,可以把认证对象存储在 MongoDB里面。不管怎样,用户肯定希望他们的文档能长期地保存在服务器上。有时候用户可能想从本地磁盘上读取或者是存入文件,我们肯定要提供这样的功能。但是随着网络、远程存储和访问性的价值和可靠性的不断改进,本地存储的使用情况会持续地减少。

我们选择MongoDB作为数据存储,有几个理由:它被证明是可靠的、可扩展的,它有良好的性能(不像一些其他的NoSQL数据库),它的定位就是成为通用数据库。我们发现它很适合单页应用,因为这样一来单页应用的前端和后端都可以使用 JavaScript 和JSON。它的命令行接口使用JavaScript作为查询语言,所以在浏览数据库的时候就可以很容易地使用JavaScript语法结构进行测试,操作数据的时候可以使用和在服务端或浏览器中所用的完全相同的表达式。MongoDB的存储格式是JSON,它的数据管理工具是专门为JSON而开发的。