बेहतर प्रदर्शन के लिए डीफ़्रेग्मेंट टेबल पर ऑप्टिमाइज़ टेबल चलाएँ


12

मैं लिनक्स 64-बिट ओएस चला रहा हूं। मेरा mysql tuner नीचे की बातें कह रहा है:

-------- सामान्य सांख्यिकी ---------------------------------------- ----------
[-] MySQLTuner स्क्रिप्ट के लिए छोड़ दिया गया संस्करण जाँच
[ठीक है] वर्तमान में समर्थित MySQL संस्करण 5.1.61-लॉग
[ठीक है] 64-बिट आर्किटेक्चर पर काम कर रहा है

-------- संग्रहण इंजन सांख्यिकी --------------------------------------- ----
[-] स्थिति: -Archive -BDB -Federated + InnoDB -ISAM -NDBCluster
[-] MyISAM तालिकाओं में डेटा: 1G (टेबल्स: 1914)
[-] InnoDB तालिकाओं में डेटा: 4M (तालिकाएँ: 199)
[!!] कुल खंडित सारणियां: २ ९ ६

-------- सुरक्षा सिफारिशें ---------------------------------------- ---
[ठीक] सभी डेटाबेस उपयोगकर्ताओं के पास पासवर्ड असाइन किए गए हैं

-------- प्रदर्शन मेट्रिक्स ---------------------------------------- ---------
[-] के लिए: 6s (7K q [1K qps], 142 कनवर्टर, TX: 8M, RX: 000101)
[-] पढ़ता / लिखता है: 97% / 3%
[-] कुल बफ़र: 1.7G वैश्विक + 13.2M प्रति थ्रेड (384 अधिकतम धागे)
[ठीक] अधिकतम संभव मेमोरी उपयोग: 6.6G (स्थापित रैम का 42%)
[ठीक] धीमी क्वेरी: 0% (0 / 7K)
[ठीक है] उपलब्ध कनेक्शन का उच्चतम उपयोग: 5% (20/384)
[ठीक] कुंजी बफर आकार / कुल MyISAM सूचकांक: 1.5G / 2.7G
[ठीक] प्रमुख बफर हिट दर: 97.4% (553K कैश्ड / 14K रीड)
[ठीक] क्वेरी कैश दक्षता: 64.6% (4K कैशेड / 6K चयन)
[ठीक है] क्वेरी कैश प्रति दिन prunes: 0
[ठीक] अस्थायी तालिकाओं की आवश्यकता के लिए: ०% (२ अस्थायी प्रकार / ३३) प्रकार)
[ओके] डिस्क पर बनाई गई अस्थाई टेबल:]% (डिस्क पर १ ९ / १) कुल)
[ठीक] थ्रेड कैश हिट दर: 85% (20 निर्मित / 142 कनेक्शन)
[ठीक] टेबल कैश हिट दर: ९ (% (४३ / खुली / ४४५ खुली)
[ठीक है] खुली फ़ाइल सीमा का उपयोग किया गया: १०% (8५६ / limit के)
[ठीक है] तालिका के ताले तुरंत अधिग्रहीत: 99% (2K तत्काल / 2K ताले)
[ठीक है] InnoDB डेटा का आकार / बफर पूल: ४.२M / DB.० मी


-------- सिफारिशें ----------------------------------------- ------------
सामान्य सिफारिशें:
    बेहतर प्रदर्शन के लिए डीफ़्रेग्मेंट टेबल पर ऑप्टिमाइज़ टेबल चलाएँ
    MySQL पिछले 24 घंटों के भीतर शुरू हुआ - सिफारिशें गलत हो सकती हैं

उनकी सिफारिशों को OPTIMIZE TABLEबेहतर प्रदर्शन के लिए डीफ़्रेग्मेंट टेबल पर चलाना है; लेकिन मुझे नहीं पता कि इसे पुट्टी के जरिए कैसे चलाया जाए।

क्या कोई है जो मुझे कोड दे सकता है कि मैं इसे पुट्टी के माध्यम से कैसे चलाऊं?

जवाबों:


7

OPTIMIZE TABLE SQL कथन है - इसे MySQL क्लाइंट में चलाएं।

सर्वर की कमांड लाइन पर, आपको कमांड लाइन क्लाइंट स्थापित होना चाहिए; आप क्लाइंट में अपने डेटाबेस से जुड़ सकते हैं mysql -u username -p

अधिक जानकारी के लिए दस्तावेज़OPTIMIZE TABLE देखें ।


यह साइट पेशेवर सिस्टम प्रशासकों द्वारा पूछे गए सवालों के बारे में है।
2

@gparent - क्या उह का मतलब सवाल पर होना था, न कि शेन का पूरी तरह से मान्य जवाब?
मार्क हेंडरसन

2
@gparent राइट - लेकिन मुझे नहीं लगता कि जब वे इसे देखते हैं तो किसी एसक्यूएल स्टेटमेंट को जानने के आधार पर किसी की व्यावसायिकता का न्याय करना उचित नहीं है। अनुसंधान ने उत्तर को जल्दी से बदल दिया होगा, लेकिन .. मुझे यह विचार पसंद नहीं है कि यह समुदाय "स्पष्ट" होने के लिए प्रश्नों को दूर कर देता है।
शेन मैडेन

आप सही हैं, मेरी टिप्पणी यहां बिल्कुल भी नहीं है, मुझे लगता है कि लेखक ने शेन के सवाल पर एक टिप्पणी पोस्ट की और फिर इसे हटा दिया, या तो मुझे या मुझे वास्तव में इसे बरकत के सवाल पर पोस्ट करना था लेकिन मैं आमतौर पर अधिक जानकारी जोड़ूंगा यदि यह मामला था।
3

1
मैं आपसे असहमत हूं, हालांकि एक जगह है जहां आपको लाइन खींचनी है। मुझे लगता है कि यह कहना उचित है कि एक पेशेवर (faq: एक पेशेवर क्षमता में) वर्तमान में MySQL डेटाबेस के साथ काम कर रहा है और उन्हें अनुकूलित करने की कोशिश कर रहा है, जो कि शब्द को Google के लिए पर्याप्त रूप से कुशल होना चाहिए और यह पता लगाना चाहिए कि यह पहला खोज परिणाम से एक MySQL क्वेरी है। शायद मैं किसी भी कर्मचारी में बहुत ज्यादा उम्मीद कर रहा हूं ..
अपरेंट

18

आप mysqlcheck -u username -p --auto-repair --optimize --all-databasesटर्मिनल में भी कोशिश कर सकते हैं ।

जहाँ तक "ऑप्टिमाइज़ टेबल" चलाने पर आप इस तरह MySQL शुरू कर सकते हैं mysql -u username -pऔर वहाँ से आप कमांड निष्पादित कर सकते हैं। आमतौर पर पहला कमांड जो मैं उपयोग करता हूं, show databases;लेकिन आपको वास्तव में पहले एक MySQL ट्यूटोरियल ढूंढना चाहिए। Google में सबसे पहले जो आया था: http://downloads.mysql.com/docs/mysql-tutorial-excerpt-5.1-en.pdf

आप पोटीन का उपयोग कर रहे हैं या नहीं अप्रासंगिक है। आप "पुट्टी के माध्यम से" के बजाय "कमांड-लाइन से" कहना चाह सकते हैं।


2
यह स्वीकार किए जाने वाले की तुलना में बहुत बेहतर समाधान है। आदेशों को चलाने से पहले सभी डेटाबेस और तालिकाओं की गणना करने की आवश्यकता नहीं है, साथ ही ऑटो-मरम्मत।
समिच

1
इसके अलावा अपने आप को एक एहसान करो और किसी भी इस चलाने से पहले एक डेटाबेस बैकअप करते हैं। mysqldump -u username -p dbname > dbname.sqlऔर gzip dbname.sqlइसे अच्छी तरह से करना चाहिए।
फासको लैब्स

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