Odziedziczyłem witrynę klienta, która ma bardzo dużą bazę danych bez powodu. Istnieje umiarkowana ilość treści i bardzo mało włączonych modułów. Baza danych jest jednak zbyt duża, aby można ją było łatwo przenosić i chcę ją wyczyścić.
Wyczyściłem standardowe tabele pamięci podręcznej, syslog i dziennik dostępu.
Czy są jakieś inne tabele, które mogę bezpiecznie obciąć w standardowej witrynie Drupal?
{cache_form}
nie są tak naprawdę poprawne. To nie jest prawdziwa tabela pamięci podręcznej. Zawiera w trakcie przesyłania formularzy. Jeśli usuniesz wszystkie dane z tej tabeli, użytkownik może utracić dane. Właściwą czynnością związaną z tą tabelą jest wygaśnięcie wpisów.Odpowiedzi:
Użyj modułu tworzenia kopii zapasowych i migracji , który ma dobre ustawienia domyślne do pomijania niepotrzebnych danych . Domyślnie generuje kopię zapasową DB bez pamięci podręcznej, watchdoga i niektórych innych tabel.
Jeśli to nie pomoże, zajrzyj do phpMyAdmin i powiedz nam, które tabele zawierają wiele wpisów.
źródło
Drupal 7 tabel, które można wykluczyć
Oto lista tabel w Drupal 7, które możesz albo wyczyścić (aby zmniejszyć rozmiar bazy danych), albo bezpiecznie wykluczyć przeprowadzenie migracji (jak w pytaniu o to, jak zmniejszyć rozmiar lokalnie eksportowanej bazy danych, aby ominąć limit importu mojego serwera? ):
Zwykle tabele takie jak
search_index
iwatchdog
zajmują dużo miejsca w bazie danych, więc samo wyeliminowanie tych 2 tabel może już mieć ogromną różnicę.Inne tabele, które można wykluczyć
Sprawdź rozmiar pozostałych tabel i określ, który z nich ma największy rozmiar.
Zazwyczaj można znaleźć tabele sesji, dla których nie ma procedury czyszczenia. Takie tabele można prawdopodobnie również wykluczyć.
Moduł tworzenia kopii zapasowych i migracji
Aby jeszcze bardziej ograniczyć to wyzwanie, jak opisano w „ Jak zmniejszyć lokalnie eksportowany rozmiar bazy danych, aby ominąć limit importu mojego serwera? ”, Spójrz także na moduł Kopia zapasowa i migracja . Oto cytat ze strony projektu (dodano tu pogrubiony znacznik):
Jest jeszcze więcej: jeśli Twoje środowisko lokalne (np. Win lub Mac) różni się od systemu operacyjnego, w którym działa serwer hostowanej witryny (np. Linux), to różnice między systemami operacyjnymi oznaczają potencjalne dodatkowe wyzwania. Miałem dobre doświadczenia z modułem Backup and Migrate między różnymi systemami operacyjnymi, co nie spowodowało żadnych problemów (działało dobrze) w sytuacjach, w których typowy eksport / import MySql wcześniej nie powiódł się.
źródło
cache_
poprzedzany lub_cache
dołączane są bezpieczne obciąć, jak również, takich jakfeatures_cache
lubviews_data_object_export_cache
itd._drupal_session_garbage_collection
utrzyma porządek w tej tabeli, w oparciu o ustawienia systemowe.Z doświadczenia wiem, że usuwam wszystkie tabele „cache_ *”.
źródło
Czasami uruchamiam ten SQL, aby obserwować wzrost liczby najlepszych tabel:
źródło
Watchdog i sesje można również wyczyścić, pamiętaj, że wszyscy użytkownicy zostaną wylogowani.
źródło
Dzięki mySQL możesz robić fajne rzeczy z programem mysqldump, aby eksportować bazę danych w całości lub w części. Na przykład to po prostu eksportuje strukturę:
Następnie możesz użyć opcji „zignoruj tabelę” w celu dalszego eksportu danych, np
To umieszcza dane na końcu wcześniejszego pliku, ignorując niektóre ogromne tabele.
Jeśli następnie potrzebujesz ogromnych tabel, możesz je wyeksportować do innego pliku, stosując powyższe podejście, możesz następnie zaimportować je we fragmentach (chociaż może być konieczne wyłączenie kontroli fk).
Skopiowałeś plik przed przesłaniem, czy to głupie pytanie?
źródło
Użyj modułu OptimizeDB , aby wyczyścić tabele pamięci podręcznej. Administracja bazy danych jest również pomocne.
Nie zapomnij mieć kopii zapasowej baz danych.
źródło
nie super ekspertem od tego, ale dzielenie się moje doświadczenie ... jeśli nie korzystasz z kopii zapasowej oraz moduł migrować i ręcznie wyeksportować je niektórych stołach można opróżnić / truncate byłoby
watchdog
,cache
,cache_menu
,cache_block
,cache_content
,cache_form
ponieważ mogą one zawierać duże ilość usuwanych danych z pamięci podręcznej, która, jak sądzę, nie zaszkodzi ... ale znowu to jest moje doświadczenie i nie napotkałem z tego powodu problemów ani utraty danych.źródło
Jakieś pomysły:
źródło
Sprawdź,
example.drushrc.php
która lista:Można je bezpiecznie wyczyścić w zakresie przenoszenia bazy danych między różnymi środowiskami (szczególnie podczas pracy z dużymi bazami danych ). Jednak nadal musisz zrozumieć, co rozliczasz.
źródło
Dodatkowe tabele, które można wyczyścić:
Inne rzeczy, które mogą zająć trochę miejsca: - starsze wersje treści (niemożliwe do wyczyszczenia za pomocą prostego obcięcia). - locales_source i locales_target. Jeśli masz języki, które nie są już używane lub tłumaczenia ciągów dla modułów, których już nie używasz. Te tabele wydają się nigdy nie zostać oczyszczone.
źródło