Czy dowolną pamięć podręczną_ * można bezpiecznie opróżnić?


14

Czasami podczas przenoszenia bazy danych może być ona zbyt duża. Czy każdą z prefiksowanych tabel „cache_” można opróżnić bez powodowania problemów?


2
Jak dotąd nie spotkałem żadnych problemów, obcinając te tabele.
GoodSp33d

Odpowiedzi:


14

Z jednym wyjątkiem tak. Ten wyjątek to cache_form. To nie jest właściwie tabela pamięci podręcznej, ale zawiera tymczasowe informacje $ form_state o formularzach aktualnie wyświetlanych w Twojej witrynie. Wyczyszczenie tej tabeli spowoduje unieważnienie tych formularzy, a kiedy użytkownik spróbuje przesłać ten formularz, otrzyma komunikat o błędzie i będzie musiał ponownie wypełnić ten formularz.

Zauważ, że drush sql-dumporaz Backup i Migruj automatycznie pomijają zawartość tych i innych tabel podczas tworzenia zrzutu bazy danych z nimi zamiast mysqldump lub phpmyadmin.


drush sql-dump faktycznie zawiera tabelę „cache_form”.
ciesz się

@remote: Nie chciałem sugerować inaczej (chociaż nie wiedziałem, że wyraźnie zachowuje cache_form). Możesz edytować (lub sugerować edycję), jeśli uważasz, że moja odpowiedź jest myląca.
Berdir

4

Na tej liście znajduje się „fałszywy przyjaciel”. cache_form nie jest tabelą pamięci podręcznej, a jej opróżnienie spowoduje unieważnienie wszystkich formularzy aktywnych na stronie w tym momencie.

Nie widzę też powodu, dla którego używałbyś do tego phpmyadmina. Jest niezgrabny i podatny na błędy. „drush cc all” to twój przyjaciel :)


3

Tabele pamięci podręcznej służą do przechowywania obliczonych wartości. Gdy moduł wywołuje cache_get () i odzyskuje pustą wartość, po prostu wykonuje kod, aby odzyskać buforowane wartości.
Wszystkie moduły, które znam, automatycznie wykonują kod, aby uzyskać wartość oczekiwaną w pamięci podręcznej, jeśli pamięć podręczna jest pusta; opróżnienie pamięci podręcznej nie powoduje żadnego problemu dla modułów, które z niej korzystają.


3

Robiłem to wiele razy i nie znalazłem żadnego problemu.

Ważna uwaga - spróbuj wyczyścić wszystkie tabele pamięci podręcznej na raz. Zapobiegnie to wykorzystaniu przez Drupal nieprawidłowych danych z pamięci podręcznej.


Mam bardzo ważne dane w tych tabelach, czy jesteś 120% pewien? ;)
Mohammad Ali Akbari,

Tak, ale w przypadku bardzo ważnych danych najpierw wykonaj kopię zapasową. :)
j2r

2
@MohammadAliAkbari Jeśli masz ważne dane, to naprawdę powinny być przechowywane gdzie indziej, a także tabele pamięci podręcznej ...
Chapabu,

@ j2r, ja też, zrobiłem to kilka razy. Nie ma problemu. +1
Sithu,

@Chapabu Mam na myśli, że strona jest ważna, sam nie przechowywałem żadnych ważnych danych
Mohammad Ali Akbari,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.