To ibdata1
nie kurczy się, jest szczególnie irytującą funkcją MySQL. ibdata1
Plik nie może być rzeczywiście skurczył dopiero po usunięciu wszystkich baz danych, usunąć pliki i przeładować zrzutu.
Ale możesz skonfigurować MySQL, aby każda tabela, łącznie z jej indeksami, była przechowywana jako osobny plik. W ten sposób ibdata1
nie będzie tak duży. Zgodnie z komentarzem Billa Karwina jest on domyślnie włączony od wersji 5.6.6 MySQL.
To było jakiś czas temu. Aby jednak skonfigurować serwer tak, aby używał osobnych plików dla każdej tabeli, musisz to zmienić my.cnf
, aby to włączyć:
[mysqld]
innodb_file_per_table=1
http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
Aby odzyskać miejsce ibdata1
, musisz usunąć plik:
- Wykonaj jedną
mysqldump
ze wszystkich baz danych, procedur, wyzwalaczy itp. Oprócz baz danych mysql
iperformance_schema
- Usuń wszystkie bazy danych oprócz powyższych 2 baz danych
- Zatrzymaj mysql
- Usuń
ibdata1
i ib_log
pliki
- Uruchom mysql
- Przywróć ze zrzutu
Po uruchomieniu MySQL w kroku 5 pliki ibdata1
i ib_log
zostaną odtworzone.
Teraz możesz już iść. Po utworzeniu nowej bazy danych do analizy tabele będą znajdować się w osobnych ibd*
plikach, a nie w ibdata1
. Jak zwykle upuszczasz bazę danych wkrótce potem, ibd*
pliki zostaną usunięte.
http://dev.mysql.com/doc/refman/5.1/en/drop-database.html
Prawdopodobnie widziałeś to:
http://bugs.mysql.com/bug.php?id=1341
Za pomocą polecenia ALTER TABLE <tablename> ENGINE=innodb
lub OPTIMIZE TABLE <tablename>
można wyodrębnić danych i stron indeksu z ibdata1 do oddzielnych plików. Jednak ibdata1 nie zmniejszy się, chyba że wykonasz powyższe kroki.
Jeśli chodzi o information_schema
, nie jest to konieczne ani możliwe do upuszczenia. W rzeczywistości jest to tylko garść widoków tylko do odczytu, a nie tabele. I nie ma z nimi żadnych plików, nawet katalogu bazy danych. informations_schema
Używa pamięci DB-silnik i jest odrzucany i regenerowane po stop / restart mysqld. Zobacz https://dev.mysql.com/doc/refman/5.7/en/information-schema.html .