/ / जांचने का कोई तरीका अगर innodb_file_per_table को MYSQL 5.5 प्रति तालिका में सेट किया गया है? - mysql, innodb, information-स्कीमा, mysql-5.5

यह जांचने का कोई तरीका है कि innodb_file_per_table प्रति तालिका MYSQL 5.5 में सेट है या नहीं? - mysql, innodb, सूचना-स्कीमा, mysql-5.5

मैं जांचना चाहता हूं कि क्या innodb_file_per_table सेट किया गया है (अर्थात .ibd का उपयोग कर प्रत्येक डेटाबेस तालिकाओं के लिए बनाया गया है) MYSQL-5.5 क्वेरी।

इसे करने का कोई तरीका?

उत्तर:

उत्तर № 1 के लिए 10
SELECT NAME, SPACE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES;

The SPACE वैश्विक तालिका स्थान (ibdata1) और फ़ाइल-प्रति-तालिका तालिका स्थान के लिए कुछ बड़ी संख्या के लिए 0 हो जाएगा।

देख http://dev.mysql.com/doc/refman/5.6/en/innodb-sys-tables-table.html


जब से तुम MySQL 5.5 का उपयोग कर रहे हैं, ऊपर समाधान काम नहीं करेगा.MySQL 5.5 में, आप इसका उपयोग कर सकते हैं:

SELECT DISTINCT TABLE_NAME, SPACE FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU
WHERE TABLE_NAME IS NOT NULL AND TABLE_NAME NOT LIKE "SYS%";

फिर से, SPACE वैश्विक तालिका स्थान के लिए 0 है, और फ़ाइल-प्रति-तालिका के लिए अधिक पूर्णांक।

चेतावनी के साथ कि यह केवल बफ़र पूल में पृष्ठों है जो तालिकाओं पर रिपोर्ट करता है।यदि आपने किसी तालिका का प्रश्न नहीं किया है, तो उसमें बफ़र पूल LRU में कोई पृष्ठ नहीं होगा, और क्वेरी उस तालिका के लिए कोई परिणाम रिपोर्ट नहीं करेगा.

केवल अन्य समाधान का उपयोग करने के लिए है ls डेटा निर्देशिका में. :-)


जवाब के लिए 36 № 2
mysql> show variables like "innodb_file_per_table";
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)