天天看点

对大数据量的处理思路

  最近要用程序对百万级别的数据量进行处理,综合性能和代码执行时间,来考虑如何书写高质量的代码.

  首先就是读数据的问题,由于数据量比较大,我们可以考虑根据唯一的主键id来取数据,这样速度比较快,而且数量不能太大,读取Mysql数据库,数据超过3万,速度就下降很明显了.

我们根据id一次取出3000个数据进行处理,处理完,继续读取取出下一个3000条,这样直到数据处理完.如果数据量小于3万,我们可以直接全部读出放到内存进行处理.

  其次是更新数据,数据量比较大,我们可以一次更新3000条数据,如果涉及到事物操作,必须是一次更新3000数据放到内存,然后调用一次事物操作数据库,切记不能一个循环调用一次事物.这样很耗时间和性能的。总之对于写操作就是避免循环一次操作一次数据库.就处理完一定量数据(3000-9000条数据),然后再操作数据库.

  最后操作大批量数据时,一定要记录日志,保留处理数据的id,避免因程序异常断开,造成数据更新失败,不知道更新到哪里了.