वर्डप्रेस DB विकास की योजना के लिए एक अच्छी रणनीति क्या है?


9

वर्डप्रेस डेटाबेस के बढ़ने के रूप में प्रदर्शन के शीर्ष पर बने रहने और बने रहने के विषय पर कुछ प्रतिक्रिया की उम्मीद ... एक चित्र को चित्रित करने के लिए .... मान लीजिए कि आपके पास एक वर्डप्रेस / बुद्धिप्रेस एमयू साइट है जो लगभग 150kb (वेनिला इंस्टॉल) से शुरू होती है ... समय के साथ उपयोगकर्ता ब्लॉग, फ़ोरम, पोस्ट और टिप्पणियां जोड़ते हैं और डेटाबेस 5mb तक बढ़ता है .... फिर अगले वर्ष 10mb .... यह भी मानते हुए कि होस्टिंग नियंत्रण एक मानक कॉलोकेटेड सेटअप है जैसे कि Cpanel या Plesk।

  • किस बिंदु पर डेटाबेस की प्रविष्टियों की संख्या फ्रंट-एंड वेबसाइट के प्रदर्शन को प्रभावित करती है?
  • अपने डेटाबेस के बढ़ते ही आप इसे सुचारू रूप से चलाने के लिए एक वेबसाइट प्रबंधक के रूप में क्या कर सकते हैं?
  • जब आपका डेटाबेस 500 - 600mb बड़ा हो तो आप 5 साल के बाद प्रदर्शन के संदर्भ में क्या उम्मीद कर सकते हैं?

एक तंग जहाज रखने पर आपके पास किसी भी प्रतिक्रिया के लिए धन्यवाद।

सादर,

एस


3
आपने 7 प्रश्न पूछे हैं और केवल 1 स्वीकार किया है। अच्छा रिकॉर्ड नहीं है। :-(

8
25mb कुछ भी नहीं है। आपको डेटाबेस के आकार के बारे में चिंता करनी चाहिए क्योंकि यह जीबी तक पहुंचता है।
डनहमजज़

आपकी प्रतिक्रिया के लिए धन्यवाद। यदि हम 500 mb पर प्रदर्शन के साथ समस्याएँ हैं तो यह शायद हमारी होस्टिंग कंपनी है। पीएस वापस गए और सवालों के जवाब स्वीकार किए गए।
साइमन

जवाबों:


4

आपके विशिष्ट प्रश्न:

1) प्रदर्शन प्रभावित होने से पहले DB में "प्रविष्टियों की संख्या" के लिए कोई सख्त सीमा नहीं है। प्रदर्शन आपके हार्डवेयर और कॉन्फ़िगरेशन पर उतना ही निर्भर करता है जितना कि DB के आकार और संरचना पर होता है।

2) यदि आप अपनी DB परत की मापनीयता के बारे में चिंतित हैं, तो आप इसे क्लस्टर में, या क्लाउड बॉक्स या VPS पर चला सकते हैं, जो आकार बदलने की अनुमति देता है। यदि आपका DB सुस्त होने लगता है, तो आप आकार ले सकते हैं (हालांकि आमतौर पर अतिरिक्त लागत पर)। ये विकल्प लागत जोड़ते हैं, लेकिन वास्तव में एक DB की मापनीयता सुनिश्चित करने का सबसे अच्छा तरीका है।

3) यह वास्तव में आपके होस्टिंग सेटअप और आपके DB आर्किटेक्चर पर निर्भर करता है। लेकिन सामान्य तौर पर (जब तक आप वास्तव में सस्ते बॉक्स पर नहीं होते), मैं 30MB वर्डप्रेस डेटाबेस के बारे में चिंता नहीं करता। वर्डप्रेस, अनुक्रमण तालिकाओं का एक अच्छा काम करता है, और यहां तक ​​कि एक ओओबी MySQL कॉन्फ़िगरेशन को आसानी से एक वर्डप्रेस DB पर इस आकार के प्रश्नों को संभालना चाहिए। जब आप गीगाबाइट्स में उठते हैं - तब आपको प्रदर्शन अनुकूलन विकल्पों पर गंभीरता से ध्यान देने की आवश्यकता हो सकती है।

सामान्य रूप में:

यदि आप प्रदर्शन के बारे में चिंतित हैं, तो अपने मौजूदा MySQL सेटअप को ट्यूनिंग और / या कैशिंग लेयर सेट करने पर ध्यान केंद्रित करें। कैशिंग MySQL पर बोझ को काफी कम कर सकता है (विशेषकर वर्डप्रेस साइटों के साथ, क्योंकि वे आम तौर पर बड़ी संख्या में डीबी क्वेरी करते हैं)।

अगर आपने MySQL को ठीक से ट्यून किया है और एक सभ्य कैशिंग परत स्थापित की है, तो आप अभी भी अपने हार्डवेयर कॉन्फ़िगरेशन को बढ़ाने से चिंतित हैं, तो आप समय की x राशि के बाद सामग्री को हटाने की नीति का प्रबंधन कर सकते हैं।

इस सामान में से कोई भी वर्डप्रेस के लिए विशिष्ट नहीं है। और मुझे यकीन नहीं है कि इस सवाल का कोई जवाब है जो किसी भी वेबसाइट या LAMP स्टैक पर चलने वाले एप्लिकेशन पर लागू नहीं होता है । लेकिन शायद किसी और के पास एमयू टेबल संरचनाओं या अन्य डब्ल्यूपी-विशिष्ट डीबी ट्रिक्स के बारे में सुझाव हैं ... मुझे पता नहीं।


4

MySQL Point-of-View से सख्ती से, मेरे पास सुझाव है कि कैसे MySQLance के लिए डेटा / इंडेक्स की कैशिंग में सुधार किया जाए।

ध्यान रखें कि MySQL के लिए दो प्रमुख Storage Engines हैं

  • MyISAM
  • InnoDB

उनके कैशिंग तंत्र अलग हैं। कुछ ऐसा है जिसे आप अपनी पसंद के स्टोरेज इंजन के लिए ट्यून कर सकते हैं।

MyISAM

MyISAM केवल इंडेक्स पेजों को कैश करता है। यह डेटा को कभी कैश नहीं करता है। आप MyISAM तालिकाओं के लिए I / O को बेहतर बनाने के लिए दो काम कर सकते हैं।

MyISAM सुधार # 1

किसी भी MyISAM तालिका जिसमें VARCHAR कॉलम होते हैं, प्रारंभिक डिजाइन को छूने के बिना आंतरिक रूप से CHAR में परिवर्तित हो सकते हैं। मान लीजिए कि आपके पास mydb.mytable नामक एक तालिका है और आप इसके लिए I / O को बेहतर बनाना चाहते हैं, तो इस पर निम्न कार्य करें:

ALTER TABLE mydb.mytable ROW_FORMAT=Fixed;

इससे तालिका का आकार 60% -100% बढ़ जाएगा, लेकिन कुछ और बदले बिना I / O में 20-30% प्रदर्शन वृद्धि होगी । मैंने इसके बारे में DBA StackExchange में पहले लिखा था:

MyISAM सुधार # 2

आपको MyISAM कुंजी कैश (जैसे key_buffer_size द्वारा आकार ) बढ़ाने की आवश्यकता है । कृपया इस क्वेरी को चलाएं:

SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1))
recommended_key_buffer_size FROM
(SELECT LEAST(POWER(2,32),KBS1) KBS
FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','mysql','performance_schema')) AA ) A,
(SELECT 2 PowerOf1024) B;

यह आपको आपके वर्तमान डेटासेट के आधार पर आदर्श key_buffer_size दिखाएगा।

InnoDB

InnoDB डेटा और इंडेक्स दोनों को कैश करता है। यदि आपने अपने सभी डेटा को InnoDB में परिवर्तित कर दिया है और वर्तमान में एक सभी InnoDB डेटाबेस से वर्डप्रेस चला रहे हैं, तो आपको अपने InnoDB बफर पूल ( innodb_buffer_pool_size के साथ आकार ) को आकार देने की आवश्यकता है । कृपया इस क्वेरी को चलाएं:

SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables
WHERE engine='InnoDB') A,
(SELECT 2 PowerOf1024) B;

यह आपको आपके वर्तमान डेटासेट के आधार पर आदर्श key_buffer_size दिखाएगा।

अनुमान

यदि आप प्रोजेक्ट करते हैं कि आप डेटासेट 20 गुना बढ़ाएंगे, तो सिर्फ यह कि यह क्वेरी 20 से क्या सुझाती है। मान लीजिए कि आपका MyISAM डेटासेट 15MB है और 3MB आपके इंडेक्स का योग है। यदि आप अनुमान लगाते हैं कि आपके पास 20 गुना अधिक डेटा होगा, तो key_buffer_size को 60MB पर इस तरह सेट करें /etc/my.cnf:

[mysqld]
key_buffer_size=60M

फिर MySQL पुनः आरंभ करें। यही बात InnoDB Buffer Pool पर लागू होगी।

यदि आपका सभी डेटा InnoDB है, तो आपको अपनी InnoDB अवसंरचना का एक पूर्ण क्लीनअप करने की आवश्यकता है, जिसे मैंने StackOverflow में पोस्ट किया था


2

किस बिंदु पर डेटाबेस की प्रविष्टियों की संख्या फ्रंट-एंड वेबसाइट के प्रदर्शन को प्रभावित करती है?

जब प्रश्न आपके होस्टिंग खाते की संसाधन सीमा से टकराने लगते हैं।

अपने डेटाबेस के बढ़ते ही आप इसे सुचारू रूप से चलाने के लिए एक वेबसाइट प्रबंधक के रूप में क्या कर सकते हैं?

संसाधन के उपयोग पर नज़र रखें। संसाधन बढ़ाने और / या उपयोग को अनुकूलित करने के लिए कदम उठाएं।

जब आपका डेटाबेस 25 - 30mb बड़ा हो तो आप 5 साल बाद प्रदर्शन के संदर्भ में क्या उम्मीद कर सकते हैं?

उस छोटे से डेटाबेस पर प्रदर्शन में कोई बदलाव नहीं होना चाहिए।

यदि आप अपनी साइट को धीरे-धीरे बढ़ने की उम्मीद करते हैं, तो आपके पास विकास को प्रबंधित करने का तरीका जानने के लिए बहुत समय है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.