迅雷部分面试题
1)在1亿条用户记录里,如何快速查询统计出看了5个电影以上的用户?
2)用java怎么实现有每天有1亿条记录的DB存储?mysql上亿记录数据量的数据库如何设计? 各位大虾帮手看看,给出答案

解决方案 »

  1.   

    1,对userId建立所以索引。
    2.使用jdbc的批处理方式,
    mysql上亿记录数据量的数据库如何设计:采用分区的方式创建表,并存储,分区后,索引文件也是分区的,每个区有自己独立的索引文件。 
    看看这个,里面详细的做了分区与不分区的性能比较: 
    http://hi.baidu.com/zhangguanshi/blog/item/9ff5a1eb303927dbd439c925.html
      

  2.   

    第一个问题肯定是建立索引了, lucene 基于Java的全文索引, 
    第二个问题,MySql安装的时候有很多种模式,如果选择不带有事务的模式 效率会高N倍,在做个集群,加个缓冲服务器。
      

  3.   

    1天1亿条,每秒钟显然超过了1100条,如果考虑高峰,每秒可能2000条。
    使用批处理的缓冲(buffer)显然是必要的,其次,考虑到索引的更新,可能还要依据业务分表甚至分库