MySQL डेटाबेस का सही आकार कैसे प्राप्त करें?




database size (6)

वेब होस्ट का चयन करने के लिए, मैं जानना चाहता हूं कि मेरा MySQL डेटाबेस कितना स्थान उपयोग करता है। मुझे कमांड SHOW TABLE STATUS LIKE 'table_name' जैसा कमांड मिला, इसलिए जब मैं क्वेरी करता हूं, तो मुझे ऐसा कुछ मिलता है:

Name       | Rows | Avg. Row Length | Data_Length | Index Length
----------   ----   ---------------   -----------   ------------
table_name   400          55            362000        66560
  • संख्या गोलाकार हैं।

तो क्या मेरे पास इस तालिका के लिए 362000 या 400 * 362000 = 144800000 बाइट डेटा है? और सूचकांक लंबाई का क्या अर्थ है? धन्यवाद !


असल में दो तरीके हैं: क्वेरी डीबी (डेटा लंबाई + सूचकांक लंबाई) या फाइल आकार की जांच करें। सूचकांक लंबाई इंडेक्स में संग्रहीत डेटा से संबंधित है।

सबकुछ यहां वर्णित है:

http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/


आप MySQL क्लाइंट में निम्न आदेश चलाकर अपने MySQL डेटाबेस का आकार प्राप्त कर सकते हैं

SELECT  sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2))  as "Size in GB"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>"

एस प्रकाश से, MySQL फोरम में मिला:

SELECT table_schema "database name",
    sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
    sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema; 

ओरेकल द्वारा माईएसQL यूटिलिटीज में एक कमांड है जिसे mysqldiskusage कहा जाता है जो प्रत्येक डेटाबेस के डिस्क उपयोग को प्रदर्शित करता है: https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqldiskusage.html


यदि आप इसे एमबी में खोजना चाहते हैं तो ऐसा करें

SELECT table_schema                                        "DB Name", 
   Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM   information_schema.tables 
GROUP  BY table_schema; 

SUM(Data_free) वैध हो सकता है या नहीं भी हो सकता है । यह innodb_file_per_table के इतिहास पर निर्भर करता है। यहां अधिक चर्चा मिली here ।







storage