用于留言板站点的 RDBMS 与 NoSQL

Posted

技术标签:

【中文标题】用于留言板站点的 RDBMS 与 NoSQL【英文标题】:RDBMS vs NoSQL for message boards site 【发布时间】:2012-07-25 21:40:00 【问题描述】:

我正在设计和规划一个新网站。 它主要是一个留言板网站

我过去有使用 mysql 的经验,但我听到了很多声音(不是在我的脑海中) 这告诉 NoSQL 可以像 RDBMS 一样好的解决方案。

NoSQL 的主要诉求是性能。你怎么看待这件事?

所以, 我的网站需要一种可扩展的数据库设计技术。 如果我使用 NoSQL,我知道这方面有几种技术 (文档存储、键值存储等)。如何选择?

你认为什么更适合留言板网站: NoSQL 还是 MySQL?

谢谢, 插座

【问题讨论】:

【参考方案1】:

SQL 和非 SQL 均可用于您的目的。使用 no-SQL 的两个主要原因是,如果您真的有大量流量(并且您的 sql 解决方案在性能方面无法正常工作),以及如果您有大量非结构化和不断变化的数据,无架构的好处。

我个人认为您需要考虑的一个重要因素是可维护性。

如果您使用 no-sql 创建任何东西,与 SQL 相比,您将拥有不到 10% 的受众来维护它。

程序员通常希望在技术上使用“最佳”解决方案,但不考虑可维护性和成本方面的因素,尤其是当他们认为解决方案“简单”时。

【讨论】:

【参考方案2】:

),出于您的目的,我认为 NoSQL 可能是比 MySQL 更好的选择。您应该检查一下 MongoDB 或 CouchDB,它们都是开源可扩展的 NoSQL DB(并且如前所述,还有其他商业可用的 NoSQL DB 和文件存储系统) 基本上,消息板实际上并不需要 DBMS。在 DBMS 中,查询处理操作比在 NoSQL DB 中要慢,并且消息板可能具有大量流量以及不一定具有固定模式的数据。 NoSQL 在数据结构方面的灵活性使您能够轻松地利用和实现分片、分区、索引和其他技术。

【讨论】:

【参考方案3】:

虽然性能是关键要素之一,但这不是 NoSQL 中的特性,它更多是设计的结果,我认为特性是它的数据结构的灵活性以及将信息存储在单个中的可能性当您处理密切相关的记录时,行避免多次往返(请查看此帖子 http://djondb.com/blog 以更好地理解我在说什么)。 对于需要每天更改其模型的任何网站,选择能够跟上这种灵活性的数据库是明智的。 我有点偏见,因为我是 NoSQL 文档存储的作者,但我建议您尝试一下 NoSQL 文档存储,您会惊讶于使用这种易于存储的方法创建解决方案的速度有多快.

【讨论】:

首先,感谢您的回复。我想知道使用 NoSQL 的主要缺点是什么?如果您愿意与我分享,您正在开发哪种 NoSQL 技术?谢谢 @socksocket 如果我要做一个列表,按照对开发人员和 NoSQL 业务的重要性排序,我会选择:1. 灵活性,2. 避免存储复杂的表简单的信息,3. 可扩展性 4. 性能。我正在开发 djondb,它是一个类似于 MongoDB 和 CouchDB 的文档存储实现,专注于保持 ACID 兼容的数据库具有文档的强大功能并且易于使用。 顺便说一句,我不推荐任何特定的实现,一些 NoSQL DB 可以很好地解决你的问题,所以去尝试一下 Mongo、Couch、Raven 等......如果你有时间看看 djondb 你的改进建议将不胜感激。【参考方案4】:

你看过 Redis (http://redis.io/) 吗?

您可以使用 Redis 对 RDBMS 中的几乎所有内容进行建模。在大多数情况下,您将获得 x10 的性能,并且得到了一个非常活跃的社区的支持。

我建议你在 Redis 论坛详细说明你的需求,你可能会得到最诚实、最专业的回复;其中一部分可能会建议您在架构的不同部分使用其他 NoSQL 技术

【讨论】:

Redis 不是都在内存中,用来缓存东西吗?论坛可能会变得非常大。 Redis 不像你建议的那样是关系型的

以上是关于用于留言板站点的 RDBMS 与 NoSQL的主要内容,如果未能解决你的问题,请参考以下文章

使用Dreamweaver完成留言系统

NoSQL与RDBMS:何时使用,何时不使用

将存储与业务逻辑分离的技术(RDBMS 和 NoSQL)

wordpress怎么添加留言板

[从0开始]PHP+phpstudy留言板项目搭建教程及报错详析

时间序列数据存储:RDBMS 与 NoSQL