none
5亿条记录以上的数据,如何做检索啊? RRS feed

  • 问题

  • 我现在有个Web搜索的需求,就两个表,一个表有5亿条记录,一个表50万,他们要join的。

    请问谁有这样方面的web应用,希望传授解决方案,我现在备选方案是Amazon SimpleDB(确定是不支持join),Mysql(没有做过如此大量的实际应用,很多不确定风险),当然还有别的开源数据库比如MongoDB……

    我不知道我有没有发错版面,但是感觉这个版面的高手多,实战多,所以发到这个版面,谢谢版主。


    我踏月色而至
    2010年8月14日 2:08

答案

  • 其实我觉得如果一定要靠找这两个表,然后Join的话,不管怎么优化,怎么建索引,用哪种技术的库,收效甚微,很难达到毫秒级查询速度。

    既然有这么大的数据量,且是Web搜索的需求,那么有5亿,那必定会有50亿的一天。

    建议结合实际的应用方式改变优化思路。

    比如说可以学习大型搜索引擎的思路,建关键词库,通过一次性分析过往记录中每个关键词的热度,然后在以后加记录时,定期分析新增部分的关键词热度的方式,以及结合记录的类似于PageRank的属性来提高搜索结果的准确性。

    这样一来,这个Web应用的性能体验就会大大提高。

     

    2010年8月18日 15:23
  • 鄙人曾做过亿级数据的查询优化

    关键还是在数据库层面。当时用的是Oracle. 表的索引很关键。  join 的时候尽量用唯一索引字段。 所有查询条件对应的字段都需要建立相应索引。

    索引如能跟数据文件分开存放最好。表能支持分区更好。

    返回数据不多的话查起来还是很快的。

    2010年8月18日 9:59
  • 5亿条记录   按照50万个关系分区, 50万的表做索引 应该速度还可以把
    成为 Microsoft V Dash了。。。 欢迎各位前辈同事在OCS加我
    2010年8月25日 3:23

全部回复

  • 谁能有实际的应用,分享一下经验哦,谢谢啦
    我踏月色而至
    2010年8月16日 4:32
  • 鄙人曾做过亿级数据的查询优化

    关键还是在数据库层面。当时用的是Oracle. 表的索引很关键。  join 的时候尽量用唯一索引字段。 所有查询条件对应的字段都需要建立相应索引。

    索引如能跟数据文件分开存放最好。表能支持分区更好。

    返回数据不多的话查起来还是很快的。

    2010年8月18日 9:59
  • 其实我觉得如果一定要靠找这两个表,然后Join的话,不管怎么优化,怎么建索引,用哪种技术的库,收效甚微,很难达到毫秒级查询速度。

    既然有这么大的数据量,且是Web搜索的需求,那么有5亿,那必定会有50亿的一天。

    建议结合实际的应用方式改变优化思路。

    比如说可以学习大型搜索引擎的思路,建关键词库,通过一次性分析过往记录中每个关键词的热度,然后在以后加记录时,定期分析新增部分的关键词热度的方式,以及结合记录的类似于PageRank的属性来提高搜索结果的准确性。

    这样一来,这个Web应用的性能体验就会大大提高。

     

    2010年8月18日 15:23
  • 谢谢两位的不同侧面的意见,我现在在测试使用MongoDB做集群
    我踏月色而至
    2010年8月25日 2:48
  • 5亿条记录   按照50万个关系分区, 50万的表做索引 应该速度还可以把
    成为 Microsoft V Dash了。。。 欢迎各位前辈同事在OCS加我
    2010年8月25日 3:23