मैं अपने अनुक्रमित के आकार को निर्धारित करना चाहता हूं, वे प्राथमिक प्रमुख सूचकांक हैं। यह mysql क्लस्टर पर होता है, लेकिन मुझे नहीं लगता कि यह महत्वपूर्ण है।
जवाबों:
मुझे लगता है कि आप यही देख रहे हैं।
show table status from [dbname]
http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
वाजेक हर्मेज़ के उत्तर का विस्तार।
यह है कि आप मेगाबाइट में, PRIMARY (जो कि स्वयं तालिका है) के बिना, आकार द्वारा आदेशित सभी अनुक्रमणिका आकार प्राप्त कर सकते हैं।
SELECT database_name, table_name, index_name,
ROUND(stat_value * @@innodb_page_size / 1024 / 1024, 2) size_in_mb
FROM mysql.innodb_index_stats
WHERE stat_name = 'size' AND index_name != 'PRIMARY'
ORDER BY size_in_mb DESC;
ORDER BY size_in_mb DESC;:?
यदि आप InnoDB तालिकाओं का उपयोग कर रहे हैं, तो आप व्यक्तिगत अनुक्रमित से आकार प्राप्त कर सकते हैं mysql.innodb_index_stats। 'आकार' स्टेट में उत्तर होता है, पृष्ठों में, इसलिए आपको इसे पृष्ठ-आकार से गुणा करना होगा, जो कि डिफ़ॉल्ट रूप से 16K है ।
select database_name, table_name, index_name, stat_value*@@innodb_page_size
from mysql.innodb_index_stats where stat_name='size';
stat_valueपहले से ही पृष्ठ-आकार से गुणा किया जाता है, इसलिए कॉलम बाइट्स में सूचकांक आकार देता है।
show table status from [dbname]
यहाँ ऊपर दिए गए कुछ में से एक अनुकूलन भी है जो आपको उस तालिका के लिए कुल सूचकांक का प्रतिशत देता है जिसका उपयोग प्रत्येक सूचकांक करता है, उम्मीद है कि यह किसी के लिए उपयोगी होगा
select
database_name,
table_name,
index_name,
round((stat_value*@@innodb_page_size)/1024/1024, 2) SizeMB,
round(((100/(SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_NAME = iis.table_name and t.TABLE_SCHEMA = iis.database_name))*(stat_value*@@innodb_page_size)), 2) `Percentage`
from mysql.innodb_index_stats iis
where stat_name='size'
and table_name = 'TargetTable'
and database_name = 'targetDB'
उदाहरण आउटपुट
database_name table_name index_name SizeMB Percentage
targetDB TargetTable id 10 55.55
targetDB TargetTable idLookup 5 27.77
targetDB TargetTable idTest 3 16.66
सादर लियाम
PhpMyAdmin का उपयोग करते हुए, जब टेबल संरचना को देखते हैं तो नीचे कहीं पर एक विवरण लिंक होता है। एक बार जब आप उस पर क्लिक करते हैं, तो यह आपके द्वारा तालिका में दर्ज किए गए अनुक्रमों का कुल आकार दिखाएगा, जहां यह अंतरिक्ष उपयोग के रूप में चिह्नित है।
मुझे नहीं लगता कि यह आपको प्रत्येक सूचकांक को व्यक्तिगत रूप से दिखाता है।
इस लेख में यह निर्धारित किया गया है कि सूचकांक आकार की गणना कैसे करें। http://aadant.com/blog/2014/02/04/how-to-calculate-a-specific-innodb-index-size/
SELECT SUM(stat_value) pages, index_name,
SUM(stat_value)*@@innodb_page_size size
FROM mysql.innodb_index_stats WHERE table_name='t1'
AND stat_name = 'size' GROUP BY index_name;