2010-07-07 15 views
9

क्या यह जांचने के लिए कोई आदेश है कि MySQL ने कितना कमरा छोड़ा है?MySQL स्पेस की जांच करें

+1

df -h? (पैडिंग यहां जाता है) – shylent

+0

मुझे लगता है कि आपको सर्वरफॉल्ट – Greg

+0

पर इस के साथ बेहतर भाग्य होगा। उत्तर के लिए सभी को धन्यवाद, मुझे नहीं पता था कि mysql स्टोर किए जा सकने वाले डेटा की मात्रा को सीमित कर सकता है या नहीं। अगर मैं सर्वर की डिस्क स्पेस पर नजर रखता हूं तो मुझे डेटाबेस के लिए कितना कमरा छोड़ा जा सकता है, इस बारे में एक विचार होना चाहिए। – MrB

उत्तर

5

आमतौर पर, MySQL उस स्थान को सीमित नहीं कर रहा है जो का उपयोग कर सकता है। आप का उपयोग अपनी हार्ड डिस्क (0) में रख सकते हैं।

हालांकि कुछ बड़े अपवाद हैं, वास्तव में बड़ी टेबल के लिए। उदाहरण के लिए माईसाम स्टोरेज इंजन, एक अधिकतम_Data_Length है जो निर्धारित करता है कि तालिका कितनी डेटा संभाल सकती है (पॉइंटर्स के लिए उपयोग किए गए बाइट्स की संख्या के आधार पर) ... लेकिन डिफ़ॉल्ट रूप से 4 जीबी प्रति तालिका कोई समस्या नहीं है, और MySQL 5 से एक तालिका कर सकती है 256 टीबी स्टोर करें।

0

उलझन में, यह आपकी हार्ड डिस्क स्पेस पर निर्भर करेगा।

यदि आपके पास हार्ड ड्राइव है जहां आप MySQL सर्वर स्थापित कर चुके हैं, तो आप लाख ++ रिकॉर्ड स्टोर कर सकते हैं।

+0

क्या आपको पता है कि डिस्क पर पूरी तरह से SQL क्वेरीज़ के माध्यम से डिस्क पर कितनी खाली जगह छोड़ी गई है? –

+0

यह सुनिश्चित नहीं है कि यह संभव है – Paladin

1

MySQL आपकी डिस्क स्पेस का उपयोग कर, इसलिए जब आपकी डिस्क में कमरा छोड़ा जा रहा है तो MySQL में भी कमरा होना चाहिए।

MySQL में, SHOW TABLE STATUS कमांड का उपयोग करें, और बाइट्स में मौजूद प्रत्येक तालिका के लिए Data_length कॉलम देखें।

यह भी देखें:

  1. How to monitor MySQL space?
  2. How can you determine how much disk space a particular MySQL table is taking up?
  3. Mysql table size on the HDD
  4. How do I check how much disk space my database is using?
+0

मैं जानना चाहता हूं कि हार्ड ड्राइव पर कितनी जगह छोड़ी गई है। मैं एक यूजरिटी को एक यूटिलिटी चलाने से पहले दो बार सोचने के लिए प्रोग्राम चलाने के बारे में बताना चाहता हूं जो प्रभावी रूप से अपने डेटाबेस के आकार को चौगुनी कर देगा। कार्यक्रम डेटाबेस सर्वर पर नहीं है लेकिन ओडीबीसी के माध्यम से जुड़ा हुआ है। मैं XP_FIXEDDRIVES का उपयोग कर Microsoft SQL में यह (अधिक या कम) कर सकता हूं, लेकिन मुझे MSSQL और MYSQL का समर्थन करने की आवश्यकता है, इसलिए मैं तुलनात्मक दिनचर्या की तलाश में हूं। –

7

@PeterTurner मैं कितनी जगह प्रयोग किया जाता है पर अक्टू 29, 2010 से पहले के एक पोस्ट किया है MySQL

द्वारा

How to monitor MySQL space?

हालांकि, मुझे पता है कि यह वह नहीं है जिसे आप ढूंढ रहे हैं। आप नहीं चाहते कि MySQL कितना डिस्कस्पेस उपयोग कर रहा है। आपका प्रश्न यह है कि MySQL लिख रहा है जहां कितनी जगह छोड़ी गई है। यह एक MySQL ऑपरेशन नहीं है। फिर भी, आप स्थानीय ओएस के साथ अपने प्रश्न का त्वरित उत्तर देने के लिए MySQL का लाभ उठा सकते हैं। क्या संयोजन के साथ? आदेश df

df प्रदर्शित करता है छह कॉलम

[[email protected]******** ~]# df -h | head -1 
Filesystem   Size Used Avail Use% Mounted on 

कि

  • फ़ाइल को टूट जाती है
  • आकार
  • प्रयुक्त
  • लाभ उठाएं
  • उपयोग%
  • पर

आप स्तंभ 4, Avail प्राप्त करने की आवश्यकता घुड़सवार। इस विचार के साथ एक समस्या है: यदि फाइल सिस्टम का नाम बहुत लंबा है, तो कॉलम 2-6 को अगली पंक्ति में ले जाता है।यहां एक उदाहरण दिया गया है:

[[email protected]******** ~]# df 
Filesystem   1K-blocks  Used Available Use% Mounted on 
/dev/mapper/vg1-root 122236876 9196208 106731192 8%/
/dev/mapper/vg2-data01 
        1726991928 810877540 828388308 50% /data 
/dev/sdc1   3844656172 559221048 3090137848 16% /backup 
/dev/sda1    101086  17569  78298 19% /boot 
tmpfs     98976204   0 98976204 0% /dev/shm 
none     16777216  58576 16718640 1% /var/tmpfs 
[[email protected]******** ~]# df -h /var/lib/mysql 
Filesystem   Size Used Avail Use% Mounted on 
/dev/mapper/vg2-data01 
         1.7T 774G 791G 50% /data 

ध्यान दें कि डेटा फ़ोल्डर के फाइल सिस्टम नाम कॉलम को 2-6 तक अगली पंक्ति में ले जाता है।

इसलिए, df डिस्प्ले की लाइन गणना करें। यदि दो पंक्तियां हैं, तो टोकन # 4 प्राप्त करें। यदि तीन पंक्तियां हैं, तो टोकन # 3 प्राप्त करें।

MYSQL_USER=root 
MYSQL_PASS=rootpassword 
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}" 
SQLSTMT="SHOW VARIABLES LIKE 'datadir'" 
DATADIR=`mysql ${MYSQL_CONN} -ANe"${SQLSTMT}" | awk '{print $2}'` 
df -B 1 ${DATADIR} > /tmp/dfmysql.txt 
LC=`wc -l < /tmp/dfmysql.txt` 
if [ ${LC} -eq 2 ] ; then SPC=`tail -1 /tmp/dfmysql.txt | awk '{print $4}'` ; fi 
if [ ${LC} -eq 3 ] ; then SPC=`tail -1 /tmp/dfmysql.txt | awk '{print $3}'` ; fi 
echo ${SPC} 

सूचना लाइन है कि

df -B 1 ${DATADIR} > /tmp/dfmysql.txt 

इस बाइट में df रिपोर्ट दे देंगे: यहाँ खोल स्क्रिप्ट है कि उपलब्ध स्थान गूंज जाएगा जहां mysql के DATADIR माउंट किया गया है है। आप इसे बदल सकते हैं:

  • df KB
  • में उत्पादन देता
  • df -B 1K एमबी

केवल mysql बातचीत mysql से datadir पुन: प्राप्त करने में KB में उत्पादन देता

  • df -B 1M उत्पादन देता है।

    इसे आज़माएं !!!

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