1.   mysql  中的数据每天都更新,每次大概更新几千条吧(会有新增加),只有一条条update吗? 这样会不会效率很低啊2.  想实现可以查询两年内的数据,这样的话,是不是要设置一个时间的字段,然后把每天的数据都做保存,保存个两年的数据还是该如何操作啊,求指点?

解决方案 »

  1.   

    1、如果这数据有大量的实时update, 还要查询,效率是不会高的,存量数据多(几百万),用户数一大,效率很低,需要重新设计表结构,分表或分区。2、看你数据量多少了,时间字段是必须的,不然历史数据无法追溯阿,数据量大的话,设置定时进程,批量将两年内的数据倒入历史表,降低数据表的压力;数据量小的话,就直接查了
      

  2.   

    直接UPDATE就行了。有索引的话,效率应该可以。
      

  3.   

    首先这样的频率更新数据表一次几千条还是挺大的呢!
    1.首先楼主选择的存储引擎,像这样更新频率这么高,推荐使用innodb
    2.必须采用分表策略,物理分表最佳!2年,按月分表即可!2年加当年也就36个表,并不多!
    3.一次几千条的更新应该是发生在后台管理员操作上吧(或者说是线上业务)
       如果是后台管理员的操作,就让他慢慢去等就好!
       如果是线上业务,推荐使用redis中的”队列“,将需要更新的数据push到队列中,然后由后台程序进行慢慢的更新,这样就不会影响前端业务正常运行