我怎么能从命令行快速validation我的数据库中的所有表都是InnoDB?
从每个存储引擎计数表
SELECT COUNT(1) table_count,engine FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql') GROUP BY engine;
或者检查每个数据库的存储引擎数量
SELECT COUNT(1) table_count,table_schema,engine FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql') GROUP BY table_schema,engine;
或者统计所有非InnoDB表(应该是0)
SELECT COUNT(1) table_count FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql') AND engine <> 'InnoDB';
列出不是InnoDB的表名和存储的表中的数据库
SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql') AND engine <> 'InnoDB';
mysql> USE xyz; mysql> SHOW TABLE STATUS;
它给你所有表和他们的引擎的列表。