我需要的是一个RDBMS,它允许非常快速地检索小块数据(例如用户的帖子,帖子的喜欢等),但是在并发插入中也是一样快(EG在运行查询时为了检索项目的喜欢,200人可能喜欢200个其他帖子。
我已经看到Facebook面临着MySQL的问题,并且已经进行了大量的分片以弥补MySQL在处理大量交易时的缺点。我正在寻找一种解决方案,允许开发人员只需编写代码,并将扩展到数据库引擎。我听说NewSQL引擎对此有好处,但我没有第一手知识,正在寻找管理具有大量数据和并发事务的系统的人,需要非常小的查询时间。
答案 0 :(得分:1)
如果您的产品尚未编写,请使用您已使用的任何技术将其写好。如果您想在MySQL和其他人之间轻松交换,请使用标准关系数据库,也许使用ORM。然后,如果遇到扩展问题,请从那里修复。你可以在此期间向外扩展。
这里的关键信息是:如果您不确定是否需要,请不要花费很大的精力来扩展成本。如果您想了解更多相关信息,请搜索“过早优化是所有邪恶的根源”:)
。
出于这个原因,我喜欢Propel和Web框架。我从像MySQL这样的东西开始,然后我可能会认为PostgreSQL更适合 - 如果我已经完成了'Propel方式',那么切换到新引擎是微不足道的 - 重建并继续。即使我出于性能原因使用了自定义SQL,一个好的MVC结构也可以更容易地分支,找出需要更改的内容,并修改新系统。
如果您以后需要它,您可以零散地连接完全不同的系统。也许一个庞大的表导致性能问题 - 将HTML片段缓存到memcache,或者可能在NoSQL中以非规范化形式存储一些数据。实际上,上述所有内容的混合比从一个到另一个的“纯粹”切换更加务实,而且工作要少得多!