/ / Dowolny sposób sprawdzenia czy innodb_file_per_table jest ustawiony w MYSQL 5.5 na stół? - mysql, innodb, schemat informacyjny, mysql-5.5

Jakikolwiek sposób sprawdzenia, czy innodb_file_per_table jest ustawiony w MYSQL 5.5 na tabelę? - mysql, innodb, schemat informacyjny, mysql-5.5

Chcę sprawdzić, czy innodb_file_per_table jest ustawiony (tj .ibd jest tworzony) dla każdej tabeli bazy danych za pomocą MYSQL-5.5 pytanie.

Jakikolwiek sposób to zrobić?

Odpowiedzi:

10 dla odpowiedzi № 1
SELECT NAME, SPACE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES;

The SPACE będzie wynosił 0 dla globalnego obszaru tabel (ibdata1) i pewnej większej liczby dla obszarów tabel dla plików na tabelę.

Widzieć http://dev.mysql.com/doc/refman/5.6/en/innodb-sys-tables-table.html


Ponieważ używasz MySQL 5.5, powyższe rozwiązanie nie będzie działać. W MySQL 5.5 możesz użyć tego:

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

Ponownie, SPACE wynosi 0 dla globalnego obszaru tabel i większe liczby całkowite dla file-per-table.

Z zastrzeżeniem, że raportuje tylko na stołachktóre mają strony w puli buforów. Jeśli nie wysłałeś zapytania do tabeli, nie będzie ona miała stron w puli buforów LRU, a zapytanie nie będzie raportować żadnych wyników dla tej tabeli.

Jedynym innym rozwiązaniem jest użycie ls w katalogu danych. :-)


36 dla odpowiedzi nr 2
mysql> show variables like "innodb_file_per_table";
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)