QuestDB中table_columns()与tables()函数的区别是什么
QuestDB
tables() 与 table_columns() 功能差异说明 二者都可以用于查询表的时间戳列配置,核心区别如下:
返回数据维度不同
tables()返回的是表级元数据,每一行对应库中的一张表,自带designatedTimestamp字段,直接存储该表的指定时间戳列名,无指定时间戳列时返回空值。
单表查询示例:SELECT designatedTimestamp FROM tables() WHERE name = 'target_table';
适合批量查询全库所有表的时间戳配置,一次调用就能拿到全量结果。查询粒度不同
table_columns()返回的是列级元数据,每一行对应单张表的一个字段,自带isDesignatedTimestamp布尔字段,标识当前列是否为指定时间戳列。调用时必须传入目标表名作为入参,一次只能查单张表的列信息。
单表查询示例:SELECT name, type FROM table_columns('target_table') WHERE isDesignatedTimestamp = true;
适合需要同时查询时间戳列的类型、索引状态、非空配置等其他列属性的场景。执行效率不同
仅校验某张表是否存在指定时间戳列时,tables()的执行效率高于table_columns(),不需要遍历表的所有字段元数据即可拿到结果。
内容的提问来源于stack exchange,提问作者The IT gal
相关产品推荐
相关产品推荐

