ควรล้างตารางใดเมื่อล้างแคชที่จัดเก็บฐานข้อมูลด้วยตนเอง


13

ก่อนที่จะไปยังแคช D8 cache_ชัดเจนด้วยตนเองใครสามารถตัดทอนตารางทั้งหมดเริ่มต้นด้วย

ใน Drupal 8 ยังมีตารางที่เริ่มต้นด้วยcache_แต่ก็มีcachetagsตารางด้วย

คำแนะนำใน D8 ยังคงถูกตัดทอนcache_*ถ้าคุณต้องการล้างแคชด้วยตนเองหรือไม่? ปลอดภัย / จำเป็น / แนะนำให้ตัดทอนcachetagsตารางพร้อมกับcache_*ตารางหรือไม่?

ฉันรู้ว่าอาจมีโมดูล contrib ทำสิ่งที่แตกต่างกันฉันส่วนใหญ่สนใจในสิ่งที่แกนทำและสิ่งที่ถือว่า "ปฏิบัติที่ดีที่สุด" สำหรับ Drupal 8 โดยทั่วไป


คุณสามารถดูได้ว่าปุ่มแคชทั้งหมดทำอะไรได้บ้าง
Eyal


ตารางแคชทั้งหมดปลอดภัยสำหรับการตัดทอนไม่ได้ลบออกทั้งหมด
hamza.gt

คำตอบ:


6

ใน drupal 8 หากคุณกำลังมองหาตารางที่ปลอดภัยซึ่งจำเป็นต้องทำการล้างด้วยตนเองให้ล้างตารางที่เริ่มต้นด้วย cache_ และตัดทอนตาราง cachetags ด้วย

หากคุณกำลังใช้ drush ให้ใช้คำสั่งนี้เพื่อล้างแคช

drush cache-rebuild


3

ตามบทความนี้ cachetagsมีการตั้งค่าเมื่อวัตถุแคชจะถูกเก็บไว้ดังนั้นมันควรจะปลอดภัยที่จะตัดทอนตารางนี้ด้วย Cachetags ระบุวัตถุแคชและคุณสามารถรับวัตถุที่เกี่ยวข้องทั้งหมดได้ในครั้งเดียว


ฉันทดสอบและตารางสามารถถูกตัดทอนโดยไม่มีปัญหา (หรือเฉพาะกับปัญหาประสิทธิภาพที่อาจเกิดขึ้น) มันถูกสร้างขึ้นใหม่เมื่อมีการโหลดเอนทิตี แต่ ... ฉันไม่รู้ว่าทำไมถ้าคุณลบอินสแตนซ์เอนทิตีแท็กที่บันทึกใน cachetags นั้นมีอยู่ในตารางแล้ว ฉันว่ามันจะต้องถูกลบออก
estoyausente

ฉันคิดว่าข้อมูลจากตาราง cachetags จะถูกลบออกเมื่อทำงาน cron และสิ่งที่คุณเห็นหลังจากการลบเอนทิตีเป็นสิ่งที่เหลืออยู่
Paul Bönisch

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_ ตามที่คุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.