显示表格或INFORMATION_SCHEMA

时间:2012-09-14 06:32:11

标签: mysql

我需要获取所有数据库中服务器上所有表的列表。

我发现了两种方法。

1)。执行SHOW FULL TABLES from <each database name> WHERE table_type = 'BASE TABLE';

2)。执行SELECT table_name, table_schema FROM information_schema.tables WHERE TABLE_TYPE = "BASE TABLE";

问题:

1)。上面提到的还有其他方法可以表现得更好吗?

2)。执行上述两种方法有什么性能差异吗?

3)。上述哪两种方法最好执行?

2 个答案:

答案 0 :(得分:2)

当然information_schematables比SHOW TABLES语句(在旧的MySQL版本&lt; 5.0中使用)更可取。它提供了更多有用的信息,它是标准的系统模式(您可以在其他数据库中找到类似的模式,例如SQL Server)。您可以使用标准SELECT语句从此模式中检索信息,我的意思是您可以使用WHERE,GROUP BY,ORDER BY等子句和函数。但有时候,在大型数据库上,information_schema的性能可能会很差。

查看有关information_schema效果的文章:INFORMATION_SCHEMA Optimization

答案 1 :(得分:0)

如果可能,我会使用information_schema。它是ANSI standard,但是,访问MySql的专有功能可能需要偶尔使用SHOW *函数。 所以我想这取决于你的具体情况。