Rumah > pangkalan data > tutorial mysql > Mengapa Prestasi INSERT InnoDB Saya Jauh Lebih Lambat Daripada MyISAM?

Mengapa Prestasi INSERT InnoDB Saya Jauh Lebih Lambat Daripada MyISAM?

DDD
Lepaskan: 2024-12-03 05:30:20
asal
228 orang telah melayarinya

Why is My InnoDB INSERT Performance So Much Slower Than MyISAM?

Isu Prestasi dengan MySQL InnoDB Insert Operations

Pengenalan

Memasukkan data ke dalam jadual MySQL menggunakan enjin InnoDB boleh, dalam senario tertentu, mengambil masa yang lebih lama daripada yang dijangkakan. Artikel ini menangani kebimbangan prestasi ini dan menyediakan penyelesaian.

Soalan Utama

Mengapakah memasukkan data ke dalam jadual MySQL InnoDB terlalu perlahan?

Analisis

Skrip ujian yang disediakan menggambarkan perbezaan yang ketara dalam prestasi sisipan antara enjin storan MyISAM dan InnoDB. MyISAM melengkapkan sisipan 1 juta baris dalam kira-kira 6 saat, manakala InnoDB memerlukan lebih 3400 saat untuk tugas yang sama.

Penjelasan

Sebab utama jurang prestasi ini terletak pada perbezaan reka bentuk asas antara MyISAM dan InnoDB. MyISAM tidak mempunyai sokongan transaksi, membolehkannya memasukkan data dengan lebih cekap. Sebaliknya, InnoDB menguatkuasakan integriti transaksi, memerlukan operasi komit selepas setiap kenyataan. Secara lalai, InnoDB melakukan siram log ke cakera selepas setiap sisipan, menghasilkan overhed prestasi yang ketara.

Penyelesaian

Untuk mengurangkan isu prestasi ini, adalah penting untuk memanfaatkan Keupayaan pengendalian transaksi InnoDB dengan berkesan. Dengan melampirkan penyata sisipan dalam transaksi eksplisit, kami boleh mengurangkan kekerapan penulisan cakera dan meningkatkan kelajuan sisipan secara mendadak.

Untuk mencapai ini, laksanakan pernyataan berikut sebelum memulakan gelung sisipan:

START TRANSACTION
Salin selepas log masuk

Selepas melengkapkan operasi sisipan, lakukan transaksi menggunakan pernyataan berikut:

COMMIT
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Prestasi INSERT InnoDB Saya Jauh Lebih Lambat Daripada 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