新租户下usage_schema对象的定义及相关操作疑问咨询
关于新租户下
USAGE_SCHEMA对象的说明 核心结论
USAGE_SCHEMA是数据库系统为每个租户内置的虚拟系统元数据Schema,并非物理数据库,它和用户自定义的同名数据库属于完全独立的两类对象,命名空间互不冲突。
具体解释
虚拟系统Schema的特性
- 它是系统预定义的虚拟对象,用来存储当前租户的使用统计数据(如查询次数、资源消耗等)。你能通过
SELECT * FROM USAGE_SCHEMA.user_queries获取数据,是因为引擎允许直接访问这类系统虚拟表,但它并不对应一个可连接的物理数据库,所以执行\c usage_schema会提示“Database not found”。
- 它是系统预定义的虚拟对象,用来存储当前租户的使用统计数据(如查询次数、资源消耗等)。你能通过
与用户自定义数据库的区别
- 你成功创建的
usage_schema是普通的物理数据库,属于用户自定义对象,和系统内置的USAGE_SCHEMA虚拟Schema分属不同的命名空间:- 访问系统统计数据:需用
USAGE_SCHEMA.表名的形式(通常系统对象会保留大写标识) - 访问你创建的自定义数据库内的表:需用
usage_schema.表名(或切换到该库后直接访问表)
- 访问系统统计数据:需用
- 你成功创建的
两者共存的原因
系统将虚拟系统对象和用户自定义对象的命名空间做了隔离,因此允许用户创建与系统虚拟Schema同名的物理数据库,不会产生命名冲突。
内容的提问来源于stack exchange,提问作者Baker X
相关产品推荐
相关产品推荐

