Jeśli wyłączysz klucze (zawieszanie indeksowania) w tabeli mysql INNODB, jak długo potrwa to ustawienie?
W przypadku zapytania takiego jak:
ALTER TABLE users DISABLE KEYS;
Czy klucze zostaną ponownie włączone na końcu skryptu? czy trwają, dopóki nie włączysz indeksowania?
mysql
database
database-administration
indexing
Daniel Beardsley
źródło
źródło
Odpowiedzi:
Dokładna instrukcja (która jest warta przeczytania) sugeruje, że efekt tej instrukcji trwa do momentu wykonania odpowiedniej
ALTER TABLE ... ENABLE KEYS
instrukcji.źródło
W rzeczywistości ZMIENIĆ TABELĘ ... WYŁĄCZYĆ KLUCZE i ZMIEŃ TABELĘ ... WŁĄCZYĆ KLUCZY nie działają !!!!
Odpowiedziałem na to w 13 lutego 2011 r.
Zrobiłem dodatkowe kopanie i dowiedziałem się od firmy macierzystej InnoDB, InnoBase Oy (zanim otrzymałem 7 z 9 w Oracle Borg), że tak właśnie jest.
Ten link sugeruje jednoczesne wyłączanie kluczy i wyłączanie kluczy obcych. Chociaż myślę, że oba są niepotrzebne, najwyraźniej to działało dla kogoś.
AKTUALIZACJA 2011-07-18 12:35 EDT
To bardzo dobre pytanie, ponieważ ujawnia zło, które pozostało w MySQL. Program mysqldump ślepo upuszcza DISABLE KEYS i ENABLE KEYS wokół tworzenia i ładuje każdą tabelę bez względu na silnik pamięci. Ponieważ DISABLE KEYS i ENABLE KEYS nie działają (w najlepszym przypadku nie mają wpływu) na tabele InnoDB, ponieważ działają poprawnie dla MyISAM, ten nieznany fakt powinien być lepiej udokumentowany przez społeczność MySQL. O tak, MySQL jest w środku Imperium Galaktycznego znanego jako Oracle. Nie będę wstrzymywał się z nadchodzącymi zmianami w dokumentacji.
źródło