我们有一张数据表需要记录各项检查的结果;
每天都要插入大量数据,几万条;
而且需要经常统计查询表中的记录;对于这种业务,一般怎样设计才能提高效率,减少服务器的压力呢?
加缓存么?还是在表中加索引什么的?

解决方案 »

  1.   

    http://plplum.blog.163.com/blog/static/31032400200962710439719/数据库查询优化
      

  2.   

    没加过索引,怎么加;
    需要经常根据时间查询,就在时间字段上加?
    我们用SqlServer数据库语句怎么写
      

  3.   

    不要直接将数据插入到数据库,即不要同步插入,应该先写入到一个缓存中,比如berkerly db 比如 memcache
    然后每个一定时间段再回写入入数据库中,统计时候,不要直接统计数据量大的表,应该弄几张汇总表
      

  4.   

    需要经常统计查询表中的记录  这个很费时。
    “不要直接统计数据量大的表,应该弄几张汇总表”,不知大6楼的意思。
    新建一个汇总表?那不是每次数据变更的时候都要修改汇总表。如果是hibernate可以配一个多对1的汇总级联
      

  5.   

    一般表数据量超过100万条,加上查询索引后,插入数据会非常慢。所以建议不要即时插入,暂时把数据插入临时表里,然后有一个自动任务,在每天的深夜0点把临时表数据插入正式表里,再清空临时表,每天执行一次。这样可以保证插入数据时速度快速。至于正式表的查询,每个要查询的字段都要加索引。如果你用的是oracle,还可以根据查询需求,建立分区表。