大多数数据库提供标准化的INFORMATION_SCHEMA
,但大多数也提供其他东西,
- 在 PostgreSQL 中,我们有系统目录,它是
pg_catalog
- 在 SQL Server 中,您有系统基表
MySQL 是否公开了除 之外的任何内容INFORMATION_SCHEMA
?具体来说,这个问题的灵感来自于试图找到是否有一个表负责内部函数解析,例如pg_catalog.pg_proc
它告诉我我的数据库具有的所有 GIS 函数。如果那是在 MySQL 中,我可以解决这个评论。但是,除此之外,我只想知道是否还有其他东西INFORMATION_SCHEMA
。就是那个问题。
你问这个很有趣。7 多年前 (
Jul 11, 2011
),我回答了INFORMATION_SCHEMA.TABLES 中的 TABLE_CATALOG 列有什么意义?.我只提到 MySQL 试图与 SQL-92 兼容,而 PostgreSQL 确实实际使用了 information_schema(它被本地化到您连接的任何数据库,或者正如我在“崩溃是自动的”一文中所说的)。
由于其开放的存储引擎基础结构,MySQL 公开的功能允许安装您自己的功能。例如,在文档中你有这个:
我在安装 Percona Server 时看到过这样的语句,Percona 提供了三个运行命令(像这些)来公开 Percona Toolkit 的部分内容。
无论如何,回到你的实际问题: INFORMATION_SCHEMA 给你的只是你已经知道的。其他一切都是可插拔的。
所有 mysql 函数都直接编译到代码中,不会公开。
对于插件,有信息 schema/
mysql.plugins
,但没有用于内部函数。