Cara Terbaik: Dapatkan, Sulitkan dan Kemas Kini Berjuta-juta Rekod dalam MySQL Menggunakan Java 8
P粉211600174
P粉211600174 2023-08-27 00:17:18
0
1
617
<p>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. </p>

Oleh itu pilihan ini diketepikan. </p> <p><strong>2</strong>: 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. </p> <p>Saya sedang mencari ciri yang mungkin untuk dipertimbangkan dalam pangkalan data Java 8/MySQL. </p> <p>Java 8: Gunakan Executor untuk berbilang benang, CompletableFuture untuk pemprosesan tak segerak dan Penstriman. </p> <p>MySQL: Cipta indeks...</p>

P粉211600174
P粉211600174

membalas semua(1)
P粉903052556
  • Sebarang operasi pada 10 juta baris data akan mengambil masa yang lama dan boleh mengakibatkan tamat masa.
  • Anda hanya boleh menggunakan VARBINARYBLOB jika anda menyimpan ke dalam MySQL.
  • Pastikan jenis data yang diisytiharkan sekurang-kurangnya lebih besar sedikit daripada data sumber. (SELECT MAX(LENGTH(col)) FROM tbl) boleh memberikan panjang maksimum.
  • Pertimbangkan untuk mencipta jadual baharu dan apabila menyalin data tukarkannya kepada lajur lain dalam jadual baharu. Kemudian mengujinya.
  • Pertimbangkan untuk memproses 1000 baris data setiap lelaran, gunakan PRIMARY KEY来跟踪“上次停下来的位置”,如果可行的话。(不要使用OFFSET). Maklumat lanjut tentang chunking: http://mysql.rjweb.org/doc.php/deletebig#deleting_in_chunks
  • Ya, gunakan beberapa jenis sisipan pukal. Tetapi hadkan jumlah saiz kumpulan kepada sekitar 1MB. (16MB sukar untuk lulus). Ini mungkin menjadikan saiz data anda di bawah 1K yang dinyatakan di atas.
  • Masa yang diperlukan untuk beroperasi pada keseluruhan meja tidak akan membuat perbezaan yang besar berbanding dengan operasi sekali sahaja, memproses 1K baris pada satu masa.
  • Apabila menyulitkan data anda, ia mungkin juga patut dicuba untuk memampatkannya. Ini boleh menyebabkan jejak cakera 3x lebih kecil.
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!