一直在学习中我从经验学到:MongoDB的理想使用场景是比我们的电视数据更窄。唯一的事情是擅长的是存储任意个JSON数据。“任意”,在此背景下,意味着你不稀罕什么是JSON里面。你甚至不看。没有模式,甚至没有一个隐含的模式,就犹如我们的电视节目数据。每个文件仅仅是一个blob数据,其内部数据是什么完全不在意。
在RubyConf这个周末,我跑进康拉德欧文,谁提出这个用例。他用MongoDB的存储JSON的任意位的是来自客户通过一个API。这是合理的。这种帽子理论是完全不在意你的数据内容是否有意义。很有趣的是在应用程序中,你的数据很有意义的。 我已经听到很多人谈论到自己的web应用下探的MongoDB来替代MySQL或PostgreSQL。任何情况下,这都不是一个好主意。架构的灵活性听起来像一个伟大的想法,但只有一次,它是真正有用的是当你的数据的结构没有任何价值。如果你有一个隐含的模式 - 这意味着,如果你期待返回JSON的数据 - 那么MongoDB是错误的选择。我建议采取看看PostgreSQL的hstore(现在比MongoDB的速度快的),并学习如何进行更改架构。他们真的并不难,即使是在大表。 |