要求:
- 请考虑春季批量申请。
- 输入是一个包含一列值的文件。
- Spring Batch 被设计为面向块的设计。
- Chunk 设计为一次记录 1000 条记录
- 因此,Reader 在微秒内从文件中读取 1000 条记录。
- 处理器一次获取一条记录并触发 SQL 查询:
select * from TABLE where COLUMN2 = "record"
可能只检索到一条记录或多条记录,并且这些记录要经过一些业务逻辑。
- 在 writer 中,我们将业务逻辑传递的所有记录(记录数将少于 1000 条)累积起来并插入到数据库中。
这里的问题:考虑该表存储了近 40 万条记录。
从文件中读取 1000 条记录时,需要几微秒。
在处理这 1000 条记录时(即在数据库中点击上述 SQL 查询 1000 次),需要 4 分钟来处理。
在写入数据库时(插入例如 100 条选定的记录),它需要几微秒。
在分析时,我发现表中只有主键列索引。我们正在使用的列 (column2) 不包含在索引列中。
请告知,添加列作为索引是否是更好的解决方案。