什么时候使用NoSql,哪一个?

时间:2011-06-21 20:28:20

标签: nosql

我已经用php和mySql编程了一段时间,最近我决定尝试一下nosql。如果有经验的人能告诉我,我真的很感激:

  • 什么时候切换,我怎么知道nosql适合我?
  • 您会推荐哪种nosql软件?

由于

4 个答案:

答案 0 :(得分:7)

  

何时是转换的好时机?

这实际上取决于具体的项目。但总的来说,我发现我可以将95%的Web应用程序用于nosql。我仍然会使用旧的好sql来保证ACID的系统(例如,使用'真正'钱的系统)。

  

我怎么知道nosql适合我?

这是为了你,相信我。 ;)

你只需要从nosql世界中尝试一些东西,阅读一些现有的文章,你就会看到所有的好处和问题。

  

您会推荐哪种nosql软件?

我个人建议你从mongodb开始,因为它非常简单。要成为sql的专家需要数年时间,成为mongodb的专家需要一个月左右。

我建议您花一个小时阅读“The little mongodb book”并尝试从明天开始编写您的第一个测试应用程序。

这里没有人会说您需要使用此数据库或此数据库。使用什么数据库取决于项目和要求。

答案 1 :(得分:3)

它取决于您的应用需求..有很多选择。

您可以使用面向文档的mongodb,“扩展”键值(如Redis),也可以使用面向图形的neo4j

这篇文章非常有用http://highscalability.com/blog/2010/12/6/what-the-heck-are-you-actually-using-nosql-for.html

答案 2 :(得分:2)

最近blog post的高可伸缩性几乎可以回答你关于何时使用NoSQL的问题。

我自己总是去MySQL,直到它让我失败,然后为工作选择合适的工具,我工作的一些非关系数据库是:

  • Riak:一个发电机克隆,当您需要快速访问记录但是有太多记录要保留在一台计算机上时非常有用。例如,Web应用程序中用户的推荐系统,您希望在几毫秒内访问数据,但您有200M用户。
  • MongoDB:一个基于文档的数据库,当我需要速度但写入密集型应用程序(读/写比率接近1:1)时,数据非常短暂,所以我不关心耐久性问题

答案 3 :(得分:1)

切换的最佳时间是:

  • 开始处理新项目并做出第一个架构决策。将现有应用程序移植到不同的数据库可能会引起很多麻烦。
  • 在看到即将到来之前,打一个砖墙......或者更好:)主要原因通常是缺乏性能或可扩展性。
  • 需要缺少的功能(例如:复杂的层次结构,类似图形的遍历等)。

我会推荐很多,但每个都有自己的发光点和其他缺乏功能的部分。选择正确工具的唯一方法是熟悉其中的几个。

  • Web开发人员通常首先学习键值存储(memcached,redis),因为它们可以解决许多性能问题(但也会增加应用程序的复杂性......)。
  • 如果您的数据模型经常发生变化,有像MongoDB或CouchDB这样的文档(无模式)数据库可以显着提高您的工作效率。
  • 对于图形遍历,有NeoJ。
  • 对于“大数据”,有Hadoop及其相关项目。
  • 一个清单继续......