2011-11-04 5 views
5

मेरे पास एक सुंदर वेनिला mysql 5.1 सेटअप है, और मैं इसे ट्यून करने की कोशिश कर रहा हूं। मैंने पाया इस handy scriptmysql ट्यूनिंग चर - वर्तमान और डिफ़ॉल्ट

यह निम्न सुझाव दिए: इन क्या मतलब है पर पढ़ने में

query_cache_limit (> 1M, or use smaller result sets) 
query_cache_size (> 16M) 
join_buffer_size (> 128.0K, or always use indexes with joins) 
table_cache (> 64) 
innodb_buffer_pool_size (>= 14G) 

और क्या वे वर्तमान की तैयारी में हैं, मैंने पाया कि मैं "mysqladmin चर"

चला सकते हैं मेरे वर्तमान मूल्य हैं:

query_cache_limit      | 1048576 
query_cache_size      | 16777216 
join_buffer_size      | 131072  
innodb_buffer_pool_size     | 8388608 

मैं इन्हें कैसे पढ़ूं, क्या वे Kbytes हैं? तो क्या 1 एम, 16 एम, 13 एम और 8 एम है?

मेरा बॉक्स केवल राम का 4 जी है और सामान्य दिन केवल कुछ सौ मेगापिक्सल मुक्त था। मैं इन सुझावों का पालन करें और क्या करना चाहिए:

#innodb_buffer_pool_size = 15G 
#table_cache = 128 
#join_buffer_size = 32M 
#query_cache_size = 64M 
#query_cache_limit = 2M 

इम 15 जी से उलझन में है, यह एक डिस्क स्थान बात है, नहीं एक स्मृति बात है? यदि ऐसा है तो सिफारिशें बहुत अच्छी नहीं हैं?

क्या मुझे अपने बॉक्स के लिए और अधिक मेमोरी मिलनी चाहिए?

अधिक जानकारी: - मेरा डीबी आकार 34 गीगा है, मैं सभी innodb का उपयोग करता हूं, मेरे पास 71 टेबल हैं, उनमें से 4 विशाल हैं, बाकी छोटे हैं। मैं बड़े लोगों को एसओएलआर में ले जाने और वहां से सभी प्रश्न पूछने की सोच रहा था, लेकिन देखना चाहता था कि मैं मूल ट्यूनिंग के साथ क्या कर सकता हूं।

धन्यवाद योएल

+0

मैं इस एक उपयोगी पढ़ने http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/ –

+0

यह बेहतर serverfault.com –

+0

पर कहा जा सकता है मैं perfblog पढ़ पाया, लेकिन अभी भी उलझन में किया गया था, मुझे लगता है कि यह मानता है कि आप पहले ही जानते हैं कि वह चर क्या है और करता है। – Joelio

उत्तर

0

आप अपने InnoDB बफर पूल अपने उपलब्ध स्मृति की तुलना में अधिक सेट नहीं करना चाहिए। स्क्रिप्ट शायद अनुशंसा की जाती है कि आपकी तालिका में रिकॉर्ड की संख्या और उनके भौतिक आकार के आधार पर। इनोडब प्रदर्शन बहुत मेमोरी आधारित है, अगर यह मेमोरी में इंडेक्स फिट कर सकता है, तो प्रदर्शन तेजी से और ध्यान देने योग्य है। तो innodb_buffer_pool_size उच्च सेटिंग लगभग हमेशा अच्छी सलाह है।

Mysbl की बात आती है जब Innodb सब कुछ के लिए सबसे अच्छा टेबल प्रकार नहीं है। बहुत बड़ी सारणी जिनमें आम तौर पर बहुत से आवेषण होते हैं, लेकिन कुछ पढ़ते हैं और अपडेट (यानी लॉगिंग) माईसाम टेबल के रूप में बेहतर होते हैं। आपकी बहुत सक्रिय टेबल (आवेषण, अद्यतन, हटावट, चयन) Innodb से बेहतर हैं। इस सलाह पर एक लौ युद्ध हो सकता है, और यह सामान्य सलाह है।

लेकिन कहा कि, कोई भी स्क्रिप्ट आपको यह बताने वाली नहीं है कि आपकी सेटिंग्स क्या होनी चाहिए। यह केवल एक सर्वश्रेष्ठ अतिथि बना सकता है। सर्वोत्तम सेटिंग्स आपके डेटा एक्सेस पैटर्न पर आधारित होती हैं। आपको वास्तव में सभी चरों पर पढ़ना होगा। mysqlperformanceblog.com मैनुअल के अलावा, mysql के बारे में सीखने के लिए एक उत्कृष्ट जगह है।

जब MySQL में, "शो वैरिएबल" और "शो स्टेटस" का उपयोग करें, यह देखने के लिए कि क्या हो रहा है। आप "innodb स्थिति दिखाएं" भी चला सकते हैं, लेकिन यदि आप नहीं जानते कि चर क्या हैं तो आप आउटपुट को समझ नहीं सकते हैं।

+0

धन्यवाद, यह कुछ अच्छी सलाह की तरह लगता है, मैंने अपने वीएम को अपग्रेड किया और अधिक मेमोरी जोड़ दी, चल रहा था मेरे पास लगभग 8 गीगा मुफ्त था, इसलिए मैंने innodb_buffer_pool_size को 4 जी पर सेट किया। जब मैंने MySQL शुरू किया तो मुझे उम्मीद थी कि यह 4 जी मेमोरी का उपयोग करेगी, लेकिन मुझे यह नहीं दिखाई देता है। पूरी रात 68 एमएम निवासी और 331 मीटर स्वैप का उपयोग करके एक बड़ी बैच नौकरी चलाने के बाद। क्या मैंने कुछ गलत किया? – Joelio

+0

मैंने आपके "शो वैरिएबल" को पढ़ा और कोशिश की, और mysql innodb_buffer_pool_size के लिए पुराना नंबर दिखा रहा है ... सुनिश्चित नहीं है कि मैंने क्या गलत किया है, मैंने my.cnf में वर्र्स जोड़े और mysql को पुनरारंभ किया .. – Joelio

+0

ठीक है, मुझे लगा यह बाहर, duh मैं my.cnf के गलत खंड में चर डालता हूं, शो चर को जांचने के विचार के लिए धन्यवाद। – Joelio

संबंधित मुद्दे