我正在尝试将大量数据批量插入 MYSQL 数据库,并且需要有关如何处理表列不够大以应对传入数据大小的情况的建议。
由于数据集非常大(超过 1Gb),我正在将输入数据流式读取到内存中。在某些时候,我“刷新”数据并尝试使用 jdbcTemplate.batchUpdate 将其插入表中。目标表的所有列都是 VARCHAR,并且假定大小为 50。这对于绝大多数数据来说已经足够了。但是,由于偶尔到达的数据大于 15,因此 INSERT 将失败(数据对于列来说太长)。
解决这个问题的最佳方法是什么?我不想盲目地使所有表列变大,因为这似乎是一种不能很好扩展的策略。由于数据的大小,我也不想预先解析数据。那么我应该等待失败,然后执行适当的“ALTER TABLE”并重新提交数据吗?是否可以缓存失败的项目,确定所需的列大小并仅重新提交失败的项目?
我正在寻找有关执行此操作的最佳方式的指针和一般建议。
谢谢。