Ответ 1
SELECT NAME, SPACE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES;
SPACE
будет равен 0 для глобального табличного пространства (ibdata1) и некоторого большего числа для табличных пространств таблиц.
См. 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
в каталоге данных.: -)