Jest sobie serwer MySQL, jest sobie baza jego. Baza jest fizycznie złożona z pliku bazy i pliku indeksów.
Jeden z indeksów jest zbędny, więc go usuwam.
Usuwanie trwa podejrzanie długo i podejrzanie mocno mieli dyskiem.
Zaglądam więc do katalogu z bazami i co widzę? Ano widzę, że MySQL przy usuwaniu jednego z indeksów robi kopię pliku z indeksami oraz KOMPLETNĄ KOPIĘ BAZY.
Uch. Nie rozumiem tego.
A myślałem, że dużym przegięciem jest już to, że nazwy baz są case-insensitive w MySQL pod Windows i case-sensitive w MySQL pod unix-like. Każdego dnia się człowiek czegoś uczy...
Dopiski:
Od: bies
Data: 20070615, 22:04
Nie chcę mi się szukać w dokumentacji lub źródłach MySQL więc potraktuj to jako dane ze szklanej kuli: A jeśli MySQL optymalizuje strukturę pliku bazy pod kątem indeksów? Wtedy, być może, przy usuwaniu indeksu należy przeorać też plik z danymi. A pewnie łatwiej jest czytać ze źródła i pisać sekwencyjnie do celu niż modyfikować źródło ,,in place''.
Od: pascon
Data: 20070622, 02:40
Też mnie niedawno zaskoczyła ta informacja o wielkości liter w nazwach bazach danych. Podobnie sprawa ma się z tabelami. Uwielbiam taką przenośność..