Rumah > pangkalan data > tutorial mysql > Mengapa Sisipan MySQL InnoDB Jauh Lebih Lambat Daripada Sisipan MyISAM?

Mengapa Sisipan MySQL InnoDB Jauh Lebih Lambat Daripada Sisipan MyISAM?

DDD
Lepaskan: 2024-12-06 09:35:11
asal
731 orang telah melayarinya

Why Are MySQL InnoDB Inserts So Much Slower Than MyISAM Inserts?

Mengapa Sisipan MySQL InnoDB Jauh Lebih Lambat daripada Sisipan MyISAM

Masalahnya:

Apabila memasukkan nombor rawak yang besar sebagai kunci ke dalam jadual, MySQL InnoDB mempamerkan kelajuan sisipan yang jauh lebih perlahan berbanding dengan MyISAM. Contohnya, memasukkan 1 juta baris ke dalam jadual 10 juta baris mengambil masa 6 saat dengan MyISAM tetapi 3433 saat dengan InnoDB.

Punca:

Sebab utama untuk perbezaan ini terletak pada mekanisme sokongan transaksi InnoDB. Tidak seperti MyISAM, yang menyimpan data terus pada cakera tanpa sebarang penimbalan perantaraan, InnoDB melakukan siram log ke cakera untuk setiap penyata sisipan. Tingkah laku komitmen pada setiap penyataan ini memberi kesan ketara kepada prestasi.

Penyelesaian:

Untuk mengoptimumkan kelajuan sisipan InnoDB, adalah disyorkan untuk menggunakan transaksi eksplisit. Dengan merangkum penyata sisipan dalam transaksi, anda boleh menangguhkan operasi komit sehingga semua penyata dilaksanakan. Pendekatan ini secara mendadak mengurangkan bilangan siram cakera yang diperlukan, sekali gus meningkatkan kelajuan pemasukan.

Untuk menggunakan penyelesaian ini, laksanakan arahan berikut sebelum dan selepas gelung sisipan anda:

Sebelum sisipan gelung:

START TRANSACTION;
Salin selepas log masuk

Selepas sisipan gelung:

COMMIT;
Salin selepas log masuk

Dengan melaksanakan teknik ini, anda boleh mempercepatkan prestasi sisipan InnoDB dengan ketara dan memperoleh kelajuan yang setanding dengan MyISAM, sambil masih mendapat manfaat daripada sokongan transaksi dan ciri integriti data InnoDB.

Atas ialah kandungan terperinci Mengapa Sisipan MySQL InnoDB Jauh Lebih Lambat Daripada Sisipan MyISAM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan