一天一张个,365天,现需要查询数据,从这365天的个中查,数据在这365个个都可能存在,即数据是分散在这个365个表中,假设查询结果量也比较大,比较有几百万条甚至上亿条,现在问这个查询如何实现。页面查询出来的数据测翻页查询。

解决方案 »

  1.   

    你没有说明你用的是什么数据库,不同的数据库有不同的解决办法
    姑且认为你用的是 mysql,MySQL 也推出了分区概念就是而论,你可以建立若干索引表
    先查索引表,再定位到具体数据
      

  2.   

    LZ搞数据挖掘的吧?普通的web应用,比较少用到那样规模量的数据建议去数据库版块问问
      

  3.   

    单独用Mysql去完成这样的查询效率比较低,也比较费时。我建议用sphinx周期性的对MYSQL建索引,索引字段就是你需要查询的表的字段。这样就可以实现LZ的对365个分表进行查询、翻页等操作,并且效率较高。
      

  4.   

    一天一张个是有意义的,表示查询很可能经常会定位到查哪一天的个。
    xuzuning 与 ciray 思路感觉比较靠边,但目前没有接触过这些,能否扩展地说一下。
      

  5.   

    利用sphinx给Mysql建索引的思路大致如下:
    比如每天在访问量最低的时候做全表遍历,将需要设为查询条件的字段插入到临时表,
    sphinx的配置文件可以指定读取临时表,从而创建索引。
    通常,首次操作需要遍历所有数据,后续只需对增加的数据进行遍历,从而形成增量索引
    在sphinx里将主索引与增量索引合并(merge),这样你去查询的时候,查主索引,所有的数据也就收录了。
    具体原理和操作方法建议你参考Sphinx中文指南