GBase8a 集群查看或判断库里有哪些表,或某张表是否存在

GBase 8a数据库集群,提供了元数据表information_schema.tables,方便用户查看或判断已经创建的表的情况。命令行也可以用show tables查看当前库的表,使用like 进行模糊匹配。

注意:

1、gbase里将视图名和表名混在一起显示,需要根据表类型区分是BASE TABLE还是VIEW。

2、当一个库下面表非常多时,读取所有表,将在磁盘扫描整个目录,当表数量超过10万个,将消耗大量的磁盘IO,耗时也将提升到分钟级。 如查询的表都是Express类型的表,请从后面样例的table_distirbutin表里查询。

可以通过如下几个方式进行。

1、show tables,适合命令行客户端快速查看。

2、从元数据表tables查询,适合查询表的全部信息。表多时速度很慢。

3、从元数据表table_distribution查询,适合查询表的名字等基本信息。

通过 show full tables [where]

可以通过where条件过滤

加上表名过滤

  • 通过show  tables [like]

这个默认是包含视图的,请注意。

  • 通过元数据表tables。

随意过滤。 但建议在表非常多时,需要扫描整个库,消耗资源太多。在某项目20万个表时,业务在线时查询全部表,耗时10-30分钟。消耗大量IO读取表信息。

建议使用后面的table_distribution查询所有Express类的表。

select table_name from information_schema.tables where table_schema='testdb' and table_type='BASE TABLE'

其中testdb是库名。

  • 通过元数据表table_distribution

该表【只】记录了express引擎类表的信息,如果只是查询表名等基本信息,建议用这个。

该表不包含视图信息。

select tbname from gbase.table_distribution where dbname='testdb';

查看视图元数据,可以参考

GBase8a 集群查看库里有哪些视图

GBase8a 集群查看或判断库里有哪些表,或某张表是否存在》有1条评论

评论已关闭。