Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3517|Odpowiedź: 1

[Napiwki] [Transfer] do MySQL Advanced: optymalizacja poleceń tabeli

[Skopiuj link]
Opublikowano 17.06.2023 11:40:34 | | |
Korzystając z mysql, możesz zauważyć, że chociaż tabela usuwa dużo danych, pliki danych i indeksy tabeli są dziwnie małe. Dzieje się tak, ponieważ mysql pozostawia wiele luk w danych podczas usuwania danych (szczególnie tekstu i BLOB), które zajmują miejsce oryginalnych danych, więc rozmiar pliku się nie zmienia. Te otwory mogą być ponownie wykorzystane w przyszłości po wstawianiu danych, i oczywiście mogą tam pozostać. Ta nie tylko zwiększa koszty przechowywania, ale także zmniejsza efektywność skanowania tabeli z powodu fragmentacji danych.

Scenariusze użycia:Jeśli usunąłeś dużą część tabeli lub wprowadziłeś wiele zmian w tabeli o zmiennej długości wierszy (jednej z kolumnami VARCHAR, LOB lub TEXT), powinieneś użyć OPTIMIZE TABLE. Usunięte rekordy są przechowywane w powiązanej liście, a kolejne operacje INSERT ponownie wykorzystują starą lokalizację rekordu. Możesz użyć OPTIMIZE TABLE, aby przekształcić niewykorzystaną przestrzeń i organizować fragmenty plików danych. [Gdy duża ilość danych zostanie usunięta z Twojej biblioteki, możesz zauważyć, że rozmiar pliku danych nie zmniejszył się. Wynika to z fragmentacji pozostawionej w pliku danych po operacji usuwania.


W większości ustawień w ogóle nie musisz uruchamiać OPTYMALIZACJI TABELI. Nawet jeśli często aktualizujesz wiersze o zmiennej długości, nie musisz ich często uruchamiać, raz w tygodniu czy raz w miesiącu, tylko dla konkretnych tabel.

OPTIMIZE TABLE działa tylko dla tabel MyISAM, BDB i InnoDB.

Dla tabel BDB tabela OPTIMIZE jest obecnie mapowana na TABELĘ ANALIZUJ. W tabelach InnoDB tabela OPTIMIZE jest mapowana na ALTER TABLE, co odbudowuje tę tabelę. Operacje odbudowy, aktualizują statystyki indeksu i zwalniają niewykorzystaną przestrzeń w klastrowanych indeksach.

Uwaga: MySQL blokuje tabelę podczas uruchomienia OPTIMIZE TABLE.

Dla myisam możesz bezpośrednio użyć tabeli optymalizacyjnej table.name,Gdy jest to silnik InnoDB, pojawi się komunikat "Tabela nie obsługuje optymalizacji, zamiast tego recreate + analyzować", a w normalnych warunkach, jeśli konwertujesz z myisam na innodb, użyjesz alter table table.name engine='innodb' do konwersji, a także możesz tego użyć do optymalizacji.Dlatego gdy jest to silnik InnoDB, możemy użyć alter table table.name engine='innodb' zamiast optymalizować pod optymalizację

Aby zobaczyć efekty przed i po, możesz użyć polecenia pokaz status tabeli, na przykład pokaz status tabeli z [bazy danych], np. '[table_name]'; data_free w wyniku zwrotu to przestrzeń magazynowa zajmowana przez pustkę.

Skrypt powłoki implementujący naprawę tabeli kontrolnej w określonym czasie MySQL oraz optymalizację tabeli optymalizacji tabel jest następujący:

Oryginał:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.




Poprzedni:Użyj narzędzia do infiltracji SQLMAP – testowania wtrysków SQL
Następny:Tutorial instalacji Consul w środowisku testowym Windows
 Ziemianin| Opublikowano 06.07.2023 18:54:17 |
--Lista kontrolna


-- Napraw stół


-- Optymalizacja tabeli


Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com