2012-05-02 3 views
43

मैंने हाल ही में देखा है कि मेरी wp_options तालिका थोड़ी बड़ी लगती है। इसमें 1161 पंक्तियां हैं, और आकार में लगभग 2.1 एमबी है।क्या मैं अपने वर्डप्रेस इंस्टॉलेशन की wp_options तालिका में ट्रांजिस्टर को हटा सकता हूं?

मैंने Clean Options स्थापित किया है। ऐसा लगता है कि 2010 में प्लगइन पर विकास बंद हो गया था, लेकिन यह अभी भी काम करता है।

अब मेरे पास संभावित अनाथ प्रविष्टियों की एक लंबी सूची है। क्या इन्हें सॉर्ट करने के बारे में जाने का कोई आसान तरीका है, और यह पता लगाने के लिए कि कौन सा निकालना है और किसके पास रखना है? साथ ही, क्या वेबसाइट के साथ प्रदर्शन के मुद्दों के कारण यह जिम्मेदार हो सकता है?

पढ़ने के लिए धन्यवाद, किसी भी विचार का स्वागत है!

अद्यतन: स्वच्छ विकल्प प्लगइन सूची में कुछ यात्रियों, जो मुझे wp_options तालिका में कई सौ क्षणिक फ़ाइलें देखते हैं कि पता लगाने के लिए नेतृत्व लौट आए।

  • _site_transient_browser_5728a0f1503de54634b3716638...
  • _site_transient_timeout_browser_03df11ec4fda7630a5...
  • _transient_feed_83dcaee0f69f63186d51bf9a4...
  • _transient_plugin_slugs
  • _transient_timeout_feed_83dcaee0f69f63186d51bf9a4b...

और इतने पर: एक पूरी गुच्छा है कि तरह लग रहे हैं। जैसे मैंने कहा, ऐसी कई सौ पंक्तियां हैं जो इस तरह दिखती हैं। क्या उन्हें सिर्फ डंप करना सुरक्षित है?

धन्यवाद

+0

शायद हम इस प्रश्न से जुड़ी खराब प्लगइन की एक (तालिका) सूची शुरू कर सकते हैं? Wp_options बाढ़ के लिए जाना प्लगइन्स। सूची के लिए पहला, "फ्लेयर" प्लगइन, जो सोशल मीडिया शेयरिंग आइकनों को जोड़ता है।प्रविष्टियां इस "_transient_flare" की तरह दिखती हैं बस इस ब्लॉग के 353611 पंक्तियों (1 गीग) को हटा दी गई, एक ब्लॉग से, जिसने इनो डीडी कैश भर दिया था। –

उत्तर

114

आप उन्हें सुरक्षित रूप से डंप कर सकते हैं। वर्डप्रेस और कुछ प्लगइन्स आवश्यकतानुसार ट्रांजिस्टर को फिर से बनाएंगे। एक क्षणिक एक जटिल क्वेरी से संग्रहीत मूल्य कम या कम है। परिणाम एक क्षणिक के रूप में सहेजे जाते हैं ताकि सिस्टम को एक सामान्य क्वेरी को बार-बार निष्पादित करने की आवश्यकता न हो, बल्कि यह केवल तभी क्षणिक दिखता है जब यह अस्तित्व में है और समाप्त नहीं हुआ है। बेशक, बदलाव करने से पहले अपने डेटाबेस का बैकअप लें ताकि कुछ गलत हो जाए!

सब कुछ का बैकअप लेने के बाद, आप इस तरह की एक mysql बयान चला सकते हैं:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%') 

[संपादित करें: बयान, भागने पात्रों के साथ तय हो गई टिप्पणी सुझाव के बाद]

+15

''% \ _ क्षणिक \ _%''। यह न भूलें कि '_' एक एकल-वर्ण [वाइल्डकार्ड] है (http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html)। –

+3

अगर मैं कर सकता तो मैं इस जवाब को तीन गुना कर दूंगा - धन्यवाद! –

+0

मैंने यह सुनिश्चित करने के लिए 'और विकल्प_value <{$ time} जोड़ा;' पुराने ट्रांजिस्टर को हटा दिया। – Mohit

1

आप वे के रूप में यात्रियों को हटा सकते हैं पुनर्निर्मित किया जाएगा। विफलता स्थितियों या कुछ प्लगइन के साथ डिज़ाइन समस्याओं के कारण कालबाह्य ट्रांजिस्टर का निर्माण हो सकता है। इसके साथ मुकाबला करने का एक तरीका मौजूदा लोगों को अपना कार्य करने की अनुमति देते हुए कालबाह्य ट्रांजिस्टर को हटाना है। कुछ दिनों के लिए समाप्त होने वाले केवल ट्रांजिस्टर को पर्ज करने से आपको यह पता लगाने का मौका मिलता है कि कौन से प्लगइन बालों के ट्रांजिस्टर होते हैं, और मुद्दों को ठीक करने या समस्याओं की रिपोर्ट करने के लिए कोई कार्रवाई करते हैं।

निम्नलिखित डेटाबेस में कोई भी wp * विकल्प सारणी पायेगा और पांच सप्ताह के सबसे पुराने क्षणिक विकल्पों को हटा देगा जो एक सप्ताह से अधिक पुराने हैं। यह किसी भी प्लगइन के विकल्पों को हटाने के लिए पर्याप्त समय देता है जिसे वे खुद को शुद्ध करने जा रहे हैं।

#!/bin/bash 

DBNAME="mydatabase" 
DBUSER="${USER}" 
DBPASSWD="secret" 
MYSQLBIN=/usr/bin/mysql # OR MYSQLBIN=/usr/local/mysql/bin/mysql 
MYSQL="${MYSQLBIN} -s -D ${DBNAME} -u ${DBUSER} -p${DBPASSWD}" 
TMP=/var/tmp/ 
ENTRIES_FILE="${TMP}entries.$$" 

# Find option tables 
for OPTION_TABLE in $(echo 'show tables like "%wp%options";' | ${MYSQL}) 
do 
    # Find up to five large long expired transients 
    ${MYSQL} > ${ENTRIES_FILE} <<EOF 
    select option_name from ${OPTION_TABLE} where option_name in 
     (select concat("_transient",substr(option_name,19)) 
      FROM ${OPTION_TABLE} WHERE option_name LIKE '_transient_timeout%' AND 
      option_value < UTC_TIMESTAMP() - INTERVAL 1 WEEK order by option_value) 
    order by length(option_value) desc limit 5; 
EOF 
    for OPTION in $(< ${ENTRIES_FILE}) 
    do 
     echo Deleting ${OPTION} from ${OPTION_TABLE} 
     echo delete from ${OPTION_TABLE} where option_name = \"${OPTION}\"\; | ${MYSQL} 
     if [[ $? -eq 0 ]]; then 
      echo delete from ${OPTION_TABLE} where option_name = \"_transient_timeout${OPTION:10}\"\; | ${MYSQL} 
     fi 
    done 
done 
rm -f ${ENTRIES_FILE}