Kami mempunyai keperluan untuk membaca kira-kira 10 juta rekod daripada pangkalan data MySQL, menyulitkan rekod ini dan mengemas kini nilai yang disulitkan kembali ke dalam medan. Bagaimana untuk mencapai keperluan ini dengan cara yang paling cekap.
Oleh itu pilihan ini diketepikan.
2: Fungsi Pelaksana dalam Java telah digunakan sebelum ini dalam salah satu aplikasi kami untuk melaksanakan pemasukan kelompok. Tetapi bilangan rekod tidak melebihi 50,000. Kami diminta menggunakan pendekatan yang sama. Oleh itu, penggunaan Spring Batch dikecualikan.
Saya sedang mencari ciri yang mungkin untuk dipertimbangkan dalam pangkalan data Java 8/MySQL.
Java 8: Gunakan Executor untuk berbilang benang, CompletableFuture untuk pemprosesan tak segerak dan Penstriman.
MySQL: Cipta indeks...
VARBINARY
或BLOB
jika anda menyimpan ke dalam MySQL.SELECT MAX(LENGTH(col)) FROM tbl
) boleh memberikan panjang maksimum.PRIMARY KEY
来跟踪“上次停下来的位置”,如果可行的话。(不要使用OFFSET
). Maklumat lanjut tentang chunking:http://mysql.rjweb.org/doc.php/deletebig#deleting_in_chunks