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
531

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...

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 menggunakanVARBINARYBLOBjika 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, gunakanPRIMARY 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!