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 集群查看或判断库里有哪些表,或某张表是否存在》有1条评论
评论已关闭。