Những bảng nào nên được làm trống khi xóa bộ nhớ cache lưu trữ cơ sở dữ liệu theo cách thủ công?


13

Trước D8 để xóa bộ nhớ cache thủ công, người ta có thể cắt tất cả các bảng bắt đầu bằng cache_.

Trong Drupal 8 vẫn có các bảng bắt đầu cache_, nhưng cũng có một cachetagsbảng.

Lời khuyên trong D8 có còn bị cắt bớt cache_*nếu bạn cần xóa bộ nhớ cache thủ công không? Có an toàn / bắt buộc / đề nghị cắt bớt cachetagsbảng cùng với các cache_*bảng không?

Tôi biết có thể có các mô-đun đóng góp làm những việc khác nhau, tôi chủ yếu quan tâm đến những gì cốt lõi làm và những gì được coi là "thực hành tốt nhất" cho Drupal 8 nói chung.


Bạn chỉ có thể nhìn vào những gì xóa tất cả các nút bộ đệm.
Mắt


Tất cả các bảng bộ đệm đều an toàn để cắt bớt, mặc dù không loại bỏ hoàn toàn chúng.
hamza.gt

Câu trả lời:


6

Trong drupal 8 nếu bạn đang tìm kiếm các bảng an toàn cần được xóa thủ công thì hãy xóa các bảng bắt đầu bằng cache_ và cũng cắt bớt bảng cache.

Nếu bạn đang sử dụng drush thì hãy sử dụng lệnh này để xóa bộ nhớ cache-

drush cache-xây dựng lại


3

Theo bài viết này cachetags được thiết lập khi các đối tượng bộ nhớ cache đang được lưu trữ, vì vậy nó cũng an toàn để cắt bớt bảng này. Bộ nhớ đệm xác định các đối tượng bộ đệm và bạn có thể nhận được tất cả các đối tượng liên quan cùng một lúc.


Tôi đã thử nghiệm và bảng có thể được cắt bớt mà không có vấn đề (hoặc chỉ với vấn đề hiệu suất potencial). Nó được tạo lại khi thực thể được tải nhưng ... Tôi không biết tại sao nếu bạn xóa một thực thể thì các thẻ được lưu trong bộ đệm đã có trong bảng. Tôi nghĩ rằng nó phải được gỡ bỏ.
estoyausente

Tôi giả sử dữ liệu từ bảng bộ đệm được xóa khi chạy cron và những gì bạn thấy sau khi xóa thực thể chỉ là phần còn lại
Paul Bönisch

0

Điều này rất tiện dụng. Thay thế dbname khi cần:

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

Bạn có thể làm điều này cho một lớp lót:

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

Thêm nhiều với tiền tố cache_ như bạn muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.