2010-03-30 49 views
2

假设我拥有数百万个用户配置文件,数百个字段(名称,性别,首选宠物等)。高性能查询 - 请提出建议

您想要在配置文件上进行搜索。

Ex.:All型材有X和Y之间的年龄,喜欢蝴蝶,讨厌巧克力....

有了数据库,你会选择谁?

假设您有类似Facebook的加载。 速度是必须的。 开放源代码首选。

我已经读了很多关于卡桑德拉,HBase的,蒙戈,Mysql的...我只是不能决定.....

+3

与其他行共享的数百个字段意味着您可能从某些规范化中受益。 – 2010-03-30 16:53:26

回答

1

它的所有使用有效的索引。 如果您有特殊查询,请为该查询制作索引。

Ex。做一个索引age_lovebutterflies_hateschoclate

如果你有像facebook这样的高流量网站,你需要更多的权力,而不仅仅是sql优化。例如memcaching,实现了像vespa或lucene/solr这样的搜索引擎,实现为集群。负载均衡器,多台服务器与64GB内存,RAID磁盘,以及许多其他服务器技术...

数据库像mysql,postgresql,sqlite和oracle的问题是索引可以静态搜索,但它们不灵活。例如,如果您希望将搜索合并到未编制索引的列中,则不会使用索引。防爆。如果你包含一个额外的参数,如性别或其他类似的位置..你将不得不创建更多的索引... lucene/solr和一个真正的搜索引擎是这样更有效,因为你可以做出尽可能多的组合像......所有你必须考虑的是,一列被索引,没有什么其他列与...

所以一起收录,Facebook的...这是一个很长的路要走花花公子;)