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
Selepas melengkapkan operasi sisipan, lakukan transaksi menggunakan pernyataan berikut:
COMMIT
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!