Які таблиці слід спорожняти під час очищення кеш-пам'яті, що зберігається вручну?


13

До D8 для очищення кешу вручну можна було усікати всі таблиці, починаючи з cache_.

У Drupal 8 ще існують таблиці, починаючи з cache_, але є також cachetagsтаблиця.

Чи все-таки порада в D8 скоротити, cache_*якщо вам потрібно очистити кеш вручну? Чи безпечно / потрібно / рекомендується усікати cachetagsстіл разом із cache_*таблицями?

Я усвідомлюю, що можуть бути модулі contrib, які роблять щось по-різному, мене в основному цікавить, що ядро ​​робить, і що вважається "найкращою практикою" для Drupal 8 взагалі.


Ви можете просто подивитися, наскільки чіткою є вся кнопка кешу.
Eyal


Усі таблиці кешу безпечні для обрізання, але не повністю їх видаляли.
hamza.gt

Відповіді:


6

У drupal 8, якщо ви шукаєте безпечні таблиці, які потрібно очистити вручну, тоді очистіть таблиці, починаючи з cache_, а також обріжте таблицю кешетагів.

Якщо ви використовуєте drush, використовуйте цю команду для очищення кешу-

drush кеш-відновити


3

Відповідно до цієї статті cachetags встановлюються, коли об’єкти кешу зберігаються, тому слід також безпечно усікати цю таблицю. Кештеги ідентифікують об’єкти кешу, і ви можете отримати всі пов'язані об'єкти одночасно.


Я перевірив, і таблицю можна без проблем урізати (або лише з потенційною проблемою продуктивності). Він відтворений під час завантаження сутності, але ... я не знаю, чому, якщо ви видалите екземпляр сутності, теги, збережені в кештегах, вже є в таблиці. Я річ, що її треба зняти.
estoyausente

Я припускаю, що дані з таблиці кеш-тегів видаляються під час запуску кронів, і те, що ви бачите після видалення об'єкта, є лише залишками
Пол Бьониш

0

Це дуже зручно. Замініть dbname за потребою:

DB_NAME="dbname"

mysql -uroot -proot --execute="SELECT concat('TRUNCATE TABLE ', TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '${DB_NAME}' AND TABLE_NAME LIKE '%cache%'" | sed 1d | mysql -uroot -proot ${DB_NAME};

0

Ви можете зробити це для одного вкладиша:

drush sqlq "TRUNCATE cache_default;TRUNCATE cache_bootstrap;TRUNCATE cache_container;TRUNCATE cache_discovery;TRUNCATE cache_data;" -l <uri> --no-interaction

Додайте стільки з префіксом cache_, скільки хочете.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.