Nosql数据库(以及sql数据库)的优点和缺点在很大程度上取决于您的用例。对于非常大的项目,性能是王;但对于全新的项目,或时间和金钱有限的项目,简单性和上市时间可能是最重要的。对于教学(拓宽你的视野,成为一个更好,更有价值的程序员),也许最重要的是简单,坚实的基本概念。
你有什么样的项目?
一些优势和劣势,在我的头顶:
> Redis
>非常简单的键值“全局变量服务器”
>非常简单(有些会说“不存在”)查询系统
>这个列表中最快的
>交易
>数据集必须适合内存
>不成熟的聚类,有不清楚的未来(我敢肯定,它会是伟大的,但它还没有决定。)
> Cassandra
>可以说是BigTable类数据库中最大的社区动力
>可能是最容易的这个列表在大/不断增长的集群中管理
>支持map / reduce,有利于分析,数据仓库
>数据中心复制
>可调一致性/可用性
>没有单点故障
>你必须知道你将在项目早期运行什么查询,以准备数据形状和索引
> CouchDB
>实现最佳同步(复制)支持,支持主/从,主/主和更多异构体系结构> HTTP协议,浏览器/应用程序可以直接与数据库部分或完全交互。 (同步也通过HTTP完成)>经过一个简短的学习曲线,相当复杂的查询系统使用Javascript和map / reduce>集群操作(无SPOF,可调一致性/可用性)目前是一个重要的分支(BigCouch)。它可能会合并到Couch,但没有路线图。>同样,集群和多数据中心在理论上是可能的(我提到的“异国情调”的东西),但是你必须自己编写所有的工具自己在这个时候。>仅附加文件格式(数据库和索引)会令人惊讶地快速消耗磁盘,您必须手动运行压缩(vacuuming),这会使数据库中的所有记录完全复制。每个索引文件都需要相同的。再次,你必须是你自己的工具匠。