Menjatuhkan indeks rangkap di MySQL memakan waktu agak lama, jadi ketika saya sedang menunggu saya mencari tentang hal itu & menemukan posting ini dari 2006, berbicara tentang bagaimana MySQL menangani ADD
dan DROP
mengindeks.
Jika tabel T adalah tabel MySQL yang memiliki empat indeks (ndx1, ndx2, ndx3, ndx4) dan Anda ingin 'mengubah tabel T drop index ndx3;' di sini persis apa yang terjadi di bawah tenda:
1) MySQL menyalin T.MYD ke tabel temp, yaitu S.MYD dan S.MYI byte nol. 2) MySQL tidak mengubah tabel S tambahkan indeks ndx1 (...); 3) MySQL tidak mengubah tabel S tambahkan indeks ndx2 (...); 4) MySQL tidak mengubah tabel S tambahkan indeks ndx4 (...); 5) MySQL menghapus T.MYD dan menghapus T.MYI 6) MySQL mengganti nama S.MYD menjadi T.MYD, dan mengubah nama S.MYI menjadi T.MYI
Apakah ini masih benar? Apakah nasihatnya masih berlaku?
Diberikan tabel MyISAM yang sama T yang memiliki empat indeks (ndx1, ndx2, ndx3, ndx4) dan Anda ingin 'mengubah tabel T drop index ndx3;' coba ini sebagai gantinya:
1) buat tabel T1 seperti T; Ini menciptakan tabel kosong T1 dengan indeks ndx1, ndx2, ndx3 dan ndx4. 2) mengubah tabel T1 drop index ndx3; Ini menjatuhkan indeks ndx3 pada T1 kosong, yang seharusnya instan. 3) masukkan ke T1 pilih * dari T; Ini akan mengisi tabel T dan memuat ketiga (3) indeks untuk T1 dalam satu pass. 4) drop table table T; 5) ubah tabel T1 ganti nama menjadi T;
Bagaimana Anda menangani semua penambahan dan penghapusan indeks dari tabel besar?