高性能查询 - 请提出建议

时间:2010-03-30 16:41:50

标签: database nosql

假设我有数百万个用户个人资料,包含数百个字段(姓名,性别,首选宠物等等)。

您想要对个人资料进行搜索。

Ex.:所有年龄介于x和y之间的个人资料,喜欢蝴蝶,讨厌巧克力......

您可以选择数据库吗?

假设您有像加载一样的Facebook。 速度是必须的。 开源首选。

我已经阅读了很多关于Cassandra,HBase,Mongo,Mysql ......我只是无法决定......

1 个答案:

答案 0 :(得分:1)

关于使用有效索引的全部内容。 如果您有特殊查询,请为该查询创建索引。

实施例。制作一个索引age_lovebutterflies_hateschoclate

如果您拥有像facebook这样的高流量网站,那么您需要的功能不仅仅是sql优化。例如,memcaching,实现了像vespa或lucene / solr这样的搜索引擎作为集群实现。负载均衡器,具有64GB RAM的多个服务器,raid磁盘以及许多其他服务器技术......

像mysql,postgresql,sqlite和oracle这样的数据库的问题是静态搜索的索引是好的,但它们不灵活。例如,如果要将搜索组合在未编制索引的列上,则不会使用任何索引。防爆。如果你包括一个额外的参数,如性别或可能是另一个像位置..你将不得不创建更多的索引... lucene / solr和一个真正的搜索引擎以这种方式更有效,因为你可以做出尽可能多的组合喜欢......所有你必须考虑的是列被索引,而不是其索引的其他列...

所以,Facebook ......这还有很长的路要走;)