Veritabanında depolanan önbelleği manuel olarak temizlerken hangi tablolar boşaltılmalıdır?


13

Önbelleği manuel olarak temizlemek için D8'den önce biri ile başlayan tüm tabloları kısaltabilir cache_.

Drupal 8'de hala başlayan tablolar var cache_, ama bir de cachetagstablo var.

cache_*Önbelleği manuel olarak temizlemeniz gerekiyorsa D8'deki öneri kesilmeye devam ediyor mu? Masalarla birlikte cachetagsmasanın kesilmesi güvenli / gerekli / önerilen cache_*mi?

Farklı şeyler yapan katkı modülleri olabileceğinin farkındayım, çoğunlukla çekirdeğin ne yaptığı ve genel olarak Drupal 8 için "en iyi uygulama" olarak kabul edilen şeylerle ilgileniyorum.


Sadece tüm önbellek düğmesinin ne yaptığını görebilirsiniz.
Eyal


Tüm önbellek tabloları kesilmek için güvenlidir, ancak onları tamamen kaldırmadı.
hamza.gt

Yanıtlar:


6

Drupal 8'de manuel olarak temizlenmesi gereken güvenli tablolar arıyorsanız, önbellek_ ile başlayan tabloları temizleyin ve ayrıca önbellek tablolarını da kesin.

Drush kullanıyorsanız önbelleği temizlemek için bu komutu kullanın.

drush cache-rebuild


3

Bu makaleye göre cachetags, önbellek nesneleri depolanırken ayarlanır, bu nedenle bu tabloyu da kesmek güvenli olmalıdır. Önbellek etiketleri önbellek nesnelerini tanımlar ve ilgili tüm nesneleri bir kerede alabilirsiniz.


Test ettim ve tablo sorunsuz bir şekilde kesilebilir (veya sadece potansiyel performans sorunu ile). Varlık yüklendiğinde yeniden oluşturulur ama ... Neden bir varlık örneğini silerseniz önbelleklere kaydedilen etiketlerin zaten tabloda olduğunu bilmiyorum. Kaldırılması gereken bir şey var.
estoyausente

Ben önbellek tablodaki verilerin cron çalışma sırasında kaldırıldığını ve varlık kaldırıldıktan sonra gördüklerinizin artık kaldığını varsayıyorum
Paul Bönisch

0

Bu çok kullanışlı. Dbname'yi gerektiği gibi değiştirin:

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

Bunu bir astar için yapabilirsiniz:

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

Cache_ öneki ile istediğiniz kadar ekleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.