遍历1亿条数据

今天拿到一个需求,数据库中有1亿条记录,当然分配到很多库很多表,现在需要遍历这个大表,然后根据某些条件更新数据库中的记录。总的条件如下:

  1. 要修改的字段是一个整数值,采用32位,要修改此字段的某一位(固定位)
  2. 一次遍历过程中当某条记录满足条件时修改标志位
  3. 标志位必须且只能修改一次,有0变成1
  4. 记录是增加的,不会减少,新的记录仍然需要过这个逻辑
  5. 一次遍历过程中不满足条件的记录进入下一个遍历周期
  6. 最终的结果是所有数据都修改了标志位(新的记录持续走这个逻辑)

显然目标是清晰的,但是实现确实不简单的,首先读取1亿条数据就是一个问题,其次缓存、同步也是一个问题,再次修改条件是变化的,并且可能需要其他的服务的数据(比如ICE服务的数据等),而且这个过程是持续的。总体来讲不是一个很容易的事情,明天和相关人员讨论下具体的实施方案,尽管今天已经讨论了大的方向,但是某些细微的问题不能处理好可能会导致非常严重的问题。