-3

我需要的是一个 RDBMS,它允许非常快速地检索小块数据(例如,用户的帖子、帖子的喜欢等),但在并发插入时同样快(例如,当有一个查询正在运行以检索喜欢一个项目,200 人可能喜欢 200 个其他帖子)。

我读到 Facebook 面临 MySQL 的问题,并且已经做了大量的分片来弥补 MySQL 在处理大量事务方面的缺点。我正在寻找一种解决方案,它允许开发人员只编写代码,并将扩展留给数据库引擎。我听说 NewSQL 引擎对此很有用,但我没有第一手知识,并且正在寻找管理过具有大量数据和并发事务的系统的人,并且需要非常短的查询时间。

4

1 回答 1

1

如果您的产品尚未编写,请使用您已经使用的任何技术将其编写好。使用标准的关系数据库,如果您想在 MySQL 和其他数据库之间轻松交换,可以使用 ORM。然后,如果您遇到缩放问题,请从那里修复。同时,您可以向外扩展。

这里的关键信息是:如果您不确定是否需要它,请不要在扩展成本上花费大量精力。如果您想了解更多相关信息,请搜索“过早优化是万恶之源” :)

出于这个原因,我喜欢将 Propel 与 Web 框架相结合。我从 MySQL 之类的东西开始,然后我可能会决定 PostgreSQL 更适合 - 如果我已经完成了“推进方式”的所有工作,那么切换到新引擎是微不足道的 - 重建并继续。即使我出于性能原因使用了自定义 SQL,一个好的 MVC 结构也可以让分支、找出需要更改的内容以及为新系统进行修改变得更加容易。

如果您以后需要它,您可以将完全不同的系统零散地连接起来。可能是一张巨大的表导致了性能问题——将 HTML 片段缓存到内存缓存,或者在 NoSQL 中以非规范化的形式存储一些数据。在实践中,以上所有内容的混合比从一个到另一个的“纯粹”转换更实用,而且工作量也少得多!

于 2013-02-21T16:12:44.213 回答