Mam bazę danych MySQL z tabelą MyISAM z 4 milionami wierszy. Aktualizuję tę tabelę raz w tygodniu, używając około 2000 nowych wierszy. Po aktualizacji zmieniam tabelę tak:MySQL ALTER TABLE na bardzo dużym stole - czy można go bezpiecznie uruchomić?
ALTER TABLE x ORDER BY PK DESC
Zamawiam tabelę według klucza podstawowego w kolejności malejącej. To nie sprawiło mi żadnych problemów na moim komputerze programistycznym (Windows z 3GB pamięci). Trzy razy próbowałem go z powodzeniem na produkcyjnym serwerze Linux (z 512 MB pamięci RAM - i osiągając wynikowy posortowany stół za około 6 minut za każdym razem), po raz ostatni spróbowałem go, musiałem przerwać zapytanie po około 30 minutach i odbudować baza danych z kopii zapasowej.
Czy serwer 512 MB może poradzić sobie z tą zmianą na tak dużym stole? Czytałem, że tworzona jest tabela tymczasowa do wykonania polecenia ALTER TABLE.
Pytanie: Czy to polecenie zmiany można bezpiecznie uruchomić? Jaki powinien być przewidywany czas na zmianę tabeli?
Myślę, że "Bardzo duży stół" to prawdopodobnie przesada. Wiersze 4M nie są bardzo dużą tabelą. 1bn mógłby być. – MarkR