MySQL ile “ALTER TABLE… DISABLE KEYS;” ne kadar sürer? son ifade?


12

Bir mysql INNODB tablosundaki anahtarları devre dışı bırakırsanız (dizin oluşturmayı askıya alır), bu ayar ne kadar sürer?

Şunun gibi bir sorgu için:

ALTER TABLE users DISABLE KEYS;

Komut dosyasının sonunda anahtarlar yeniden etkinleştiriliyor mu? veya siz endekslemeyi açıkça tekrar açana kadar devam eder mi?


Bu soru, başkalarının DISABLE KEYS, ENABLE KEYS ve InnoDB hakkında bir şeyler fark etmelerine yardımcı olduğu için + 1'i hak ediyor.
RolandoMySQLDBA


Yanıtlar:


7

İyi Kılavuz (Okumaya değer), bu ifadenin etkisinin, karşılık gelen bir ALTER TABLE ... ENABLE KEYSifade yürütülene kadar sürdüğünü gösterir .


6

Gerçekte, alter tablo ... anahtarları devre dışı bırak ve alter tablo ... aktif anahtarları çalışmıyor !!!!

13 Şubat 2011'de bu konuya değindim.

Biraz ek kazma yaptım ve InnoDB'nin ana şirketi InnoBase Oy'dan (Oracle Borg'da 9'dan 7'sinden önce yapılmış) öğrendim, gerçekten durum böyle.

Bu bağlantı DISABLE KEYS yapmayı ve yabancı anahtarları birlikte devre dışı bırakmayı önerir. Her ikisinin de gereksiz olduğunu düşünmeme rağmen, görünüşe göre birisi için işe yaradı.

GÜNCELLEME 2011-07-18 12:35 EDT

Bu çok iyi bir soru çünkü MySQL'de kalmış bir kötülüğü ortaya çıkarıyor. Mysqldump programı, depolama motoru dikkate alınmadan her tablo üzerinde oluşturma ve yükleme etrafında DISABLE KEYS ve ENABLE KEYS damla bırakır. Devre Dışı Bırakma Tuşları ve Etkinleştirme Tuşları, MyISAM için düzgün çalıştığı için InnoDB tablolarında çalışmadığından (en iyi durumda hiçbir etkisi yoktur), bu bilinmeyen gerçek MySQL topluluğu tarafından daha iyi belgelenmelidir. Evet, MySQL, Galaktik İmparatorluğun ortasında Oracle olarak biliniyor. Önümüzdeki dokümantasyon değişiklikleri konusunda nefesimi tutmayacağım.


3
İfade etmek bir şeydir. Hem kapak hem de kalın kullanarak bağırmak biraz aşırı ve tamamen gereksizdir.
John Gardeniers

1
@John: Çok hevesli olduğum için üzgünüm. Ben kimseye kızgın değilim. ALTER TABLE DISABLE / ENABLE TUŞLARI InnoDB'ye karşı iyi belgelenmemiştir. Oracle da işleri geliştirmeyecek.
RolandoMySQLDBA

@RolandoMySQLDBA mysqldump DISABLE KEYS ve ENABLE KEYS döküm dosyasında koyarak önlemek için herhangi bir çözüm var mı?
pahnin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.