मैन्युअल रूप से संग्रहीत डेटाबेस को साफ़ करते समय किन तालिकाओं को खाली किया जाना चाहिए?


13

मैन्युअल रूप से कैश को साफ़ करने के लिए D8 से पहले एक शुरुआत से सभी तालिकाओं को छोटा कर सकता है cache_

Drupal 8 में अभी भी टेबल शुरू हैं cache_, लेकिन एक cachetagsटेबल भी है ।

cache_*यदि आपको मैन्युअल रूप से कैश साफ़ करने की आवश्यकता है, तो क्या डी 8 में सलाह अभी भी कम करने के लिए है? क्या यह सुरक्षित है / आवश्यक है / तालिकाओं cachetagsके साथ-साथ टेबल को छोटा करने की सिफारिश की गई है cache_*?

मुझे पता है कि कुछ अलग तरीके से काम करने वाले कंट्रिब मॉड्यूल हो सकते हैं, मैं ज्यादातर दिलचस्पी रखता हूं कि कोर क्या करता है, और सामान्य रूप से ड्रुपल 8 के लिए "सबसे अच्छा अभ्यास" क्या माना जाता है।


आप बस देख सकते हैं कि सभी कैश बटन क्या स्पष्ट करते हैं।
ईयाल


सभी कैश टेबल ट्रंकटिंग के लिए सुरक्षित हैं, हालांकि पूरी तरह से उन्हें हटा नहीं दिया।
हमजा.जग

जवाबों:


6

ड्रुपल 8 में यदि आप सुरक्षित टेबल की तलाश कर रहे हैं जिसे मैन्युअल रूप से साफ करने की आवश्यकता है तो कैश_ से शुरू होने वाली तालिकाओं को साफ करें और कैशेटेग टेबल को भी छोटा कर दें।

यदि आप ड्रश का उपयोग कर रहे हैं तो स्पष्ट कैश के लिए इस कमांड का उपयोग करें-

drush कैश-पुनर्निर्माण


3

इस लेख के अनुसार cachetagsसेट किया जाता है जब कैश ऑब्जेक्ट संग्रहीत किए जा रहे हैं, इसलिए इस तालिका को भी छोटा करना सुरक्षित होना चाहिए। Cachetags कैश ऑब्जेक्ट्स की पहचान करते हैं और आप एक ही बार में सभी संबंधित ऑब्जेक्ट प्राप्त कर सकते हैं।


मैंने परीक्षण किया और तालिका को समस्याओं के बिना (या केवल पोटेंशियल प्रदर्शन समस्या के साथ) छोटा किया जा सकता है। जब इकाई लोड हो जाती है तो इसे फिर से बनाया जाता है लेकिन ... मुझे नहीं पता कि यदि आप एक इकाई को हटाते हैं तो उदाहरण के लिए cachetags में सहेजे गए टैग पहले से ही तालिका में हैं। मैं बात करता हूं कि इसे हटाना होगा।
estoyausente

मुझे लगता है कि cachetags तालिका के डेटा को क्रोन रन पर हटा दिया गया है और आप निकाले जाने के बाद जो देख रहे हैं, वह अभी बचा हुआ है
पॉल बॉनिक

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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.