information_schema详解 附录 - xiaoboluo768/mysql-system-schema GitHub Wiki
- 注意事项
- 字符集问题:
* 字符类型数据列的定义通常使用类似"VARCHAR(N) CHARACTER SET utf8"的语句定义。MySQL对设置为utf8字符集的字段使用默认的校对规则utf8_general_ci来执行搜索、排序、比较等操作,该规则对INFORMATION_SCHEMA下的视图同样适用
* 由于某些MySQL对象被描述为文件,因此针对INFORMATION_SCHEMA下的视图中的字符串列的检索操作可能会受到文件系统区分大小写的影响
- 性能问题:
* 从INFORMATION_SCHEMA中查询多个数据库的元数据信息时可能需要很长时间,会影响性能。对INFORMATION_SCHEMA中的视图执行检索操作MySQL查询优化器也可以做一些优化(要检查查询语句的执行计划,可以使用EXPLAIN查询),所以,为了避免全表扫描数据字典视图,在select语句中指定你需要查询的字段,不要使用*。
- 一些实现标准准则
* MySQL中INFORMATION_SCHEMA表结构的实现遵循ANSI/ISO SQL:2003标准。但只是大致符合SQL:2003核心功能。MySQL中的实现省略了许多与MySQL无关的列,并添加了特定于MySQL的列。例如:INFORMATION_SCHEMA.TABLES表中的ENGINE列。
* MySQL中的INFORMATION_SCHEMA,在其他DBMS中不同,如:syscat或system。为了避免使用到标准准则中,或者DB2、SQL Server、Oracle中的保留关键字,在MySQL中更改了某些列的名称,并被标记为“MySQL extension”列 (例如,在TABLES表中将COLLATION更改为TABLE_COLLATION)
- 与INFORMATION_SCHEMA相关的一些知识参考链接
- 有关InnoDB存储引擎特有的INFORMATION_SCHEMA表的信息:https://dev.mysql.com/doc/refman/5.7/en/innodb-i_s-tables.html
- 有关线程池插件特有的INFORMATION_SCHEMA表的信息:https://dev.mysql.com/doc/refman/5.7/en/thread-pool-i_s-tables.html
- 有关INFORMATION_SCHEMA数据库的常见问题的问答:https://dev.mysql.com/doc/refman/5.7/en/faqs-information-schema.html
- INFORMATION_SCHEMA查询优化器:https://dev.mysql.com/doc/refman/5.7/en/information-schema-optimization.html
- 校对规则对INFORMATION_SCHEMA查询的影响:https://dev.mysql.com/doc/refman/5.7/en/charset-collation-information-schema.html
- 增强的show语句:https://dev.mysql.com/doc/refman/5.7/en/extended-show.html
上一篇:CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS表 | 下一篇:mysql schema详解目录