Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mempercepat konversi dari MyISAM ke InnoDB

  • Menyetel innodb_buffer_pool_size yang besar (2GB atau lebih)
  • membaca file data/indeks myisam lama Anda menggunakan perintah shell
  • tambahkan innodb_log_file_size (256 MB)
  • Lakukan tabel ubah di X utas paralel, di mana X adalah jumlah inti CPU di server Anda
  • perubahan kecil lainnya hanya untuk konversi (innodb_doublewrite=0, innodb_flush_log_at_trx_commit=0)

mengatur innodb_buffer_pool_size setinggi mungkin adalah cara khas untuk mempercepat pembuatan tabel innodb - dataset Anda sepertinya bisa muat di dalam kumpulan buffer innodb 2GB, jadi server 64 bit yang layak harus mengizinkannya. alter table type=innodb juga lebih cepat daripada solusi dump+reimport, dan mudah dijalankan secara paralel.

Pastikan juga Anda telah meningkatkan innodb_log_file_size dari default 5Mb menjadi 128 atau 256MB. Hati-hati dengan itu, dan perlu shutdown bersih + menghapus ib_logfile* lama.

Jika server Anda memiliki ram 8GB, dan Anda menjalankan mysql versi 64 bit, saya akan menyarankan innodb_buffer_pool 2GB, dan Anda bahkan dapat membaca file MYD dan MYI lama sebelum menutup waktu henti, sehingga mereka akan berada di Cache halaman OS saat pekerjaan sebenarnya dimulai.

Jika Anda juga melakukan tweak kecil, harap diingat bahwa Anda perlu membatalkannya setelah konversi (waktu henti kecil lainnya) agar data Anda aman, saya ragu mereka layak untuk set data sekecil itu.

Semoga berhasil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. akses tingkat baris pengguna mysql

  2. Kesalahan sintaks prosedur tersimpan server MySQL

  3. Permintaan MySQL gagal karena kata kunci yang dipesan?

  4. Pemicu MySQL tidak dapat memperbarui baris dalam tabel yang sama dengan pemicu yang ditetapkan. Solusi yang disarankan?

  5. Bagaimana cara membuat database MySQL dari file dump di skrip expect/TCL?