我们有一个需求,需要从MySQL数据库中读取大约1000万条记录,对这些记录进行加密,并将加密后的值更新回字段中。 如何以最高效的方式实现这个需求。
1:使用AES_ENCRYPT从MySQL数据库进行字段级别的加密:据我了解,AES_ENCRYPT在varbinary上可以有效地工作,但我们的字段只是varchar类型。 因此排除了这个选项。
2:之前在我们的一个应用程序中已经使用了Java中的Executor功能来实现批量插入。但记录数不超过5万条。我们被要求使用类似的方法。因此排除了使用Spring Batch来实现。
我正在寻找在Java 8 / MySQL数据库中需要考虑的可能特性。
Java 8:使用Executor进行多线程处理,使用CompletableFuture进行异步处理,使用Streaming。
MySQL:创建索引...
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
VARBINARY或BLOB。SELECT MAX(LENGTH(col)) FROM tbl)可以给出最大长度。PRIMARY KEY来跟踪“上次停下来的位置”,如果可行的话。(不要使用OFFSET)。有关分块的更多信息:http://mysql.rjweb.org/doc.php/deletebig#deleting_in_chunks