签到成功

知道了

CNDBA社区CNDBA社区

MySQL 8.0新特性(1)--数据字典

2018-11-16 15:00 3570 0 原创 MySQL 8.0
作者: Expect-乐

MySQL现在包含一个事务数据字典,用于存储有关数据库对象的信息。在以前的MySQL版本中,字典相关数据是存储在元数据文件和非事务表中。

数据字典的好处:

l  统一集中存储字典数据http://www.cndba.cn/Expect-le/article/3141

l  移除了基于文件的元数据存储

l  字典数据的事务性,安全性

l  字典对象的集中和统一的缓存

l  一些INFORMATION_SCHEMA中表的更简单和改进的实现。

l  原子DDL

        

         数据字典表是不可见的。 不能用SELECT语句查询,也无法通过SHOW TABLES命令查看,也不存储在INFORMATION_SCHEMA中。 但是,在大多数情况下,可以查询相应的INFORMATION_SCHEMA中的表。 从概念上讲,INFORMATION_SCHEMA只是提供了一个相应的视图,MySQL通过该视图提供一些数据字典元数据给用户查看。 如:

无法直接访问mysql中的数据字典表

mysql> SELECT * FROM mysql.schemata;

ERROR 3554 (HY000): Access to data dictionary table 'mysql.schemata' is rejected.

mysql> desc schemata;

ERROR 3554 (HY000): Access to data dictionary table 'mysql.schemata' is rejected.

可通过INFORMATION_SCHEMA中国的schemata视图来访问

mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA/G

*************************** 1. row ***************************

              CATALOG_NAME: def

               SCHEMA_NAME: mysql

DEFAULT_CHARACTER_SET_NAME: utf8mb4

    DEFAULT_COLLATION_NAME: utf8mb4_0900_ai_ci

                  SQL_PATH: NULL

省略。。。

5 rows in set (0.00 sec)

注:并不是所有数据字典表,都有相应的视图以供查询。例如:mysql.indexes,但是INFORMATION_SCHEMA.STATISTICS包含了大部分相同的信息。

在MySQL8.0之前版本中的一些系统表已经被数据字典所取代:

l  数据字典表event取代了event系统表

l  parameters 和routines数据字典表一起取代了proc系统表http://www.cndba.cn/Expect-le/article/3141

注:升级到MySQL8.0应该注意这方面的问题,具体升级注意事项查看官方文档:http://www.cndba.cn/Expect-le/article/3141

https://dev.mysql.com/doc/refman/8.0/en/upgrading.html

  附录

MySQL8.0中所有的数据字典表:

l  catalogs:目录信息。http://www.cndba.cn/Expect-le/article/3141

l  character_sets:有关可用字符集的信息。

l  collations:有关每个字符集的排序规则的信息。

l  column_statistics:列值的直方图统计信息。

l  column_type_elements:有关列使用的类型的信息。

l  columns:有关表中列的信息。

l  dd_properties:标识数据字典属性(例如其版本)的表。服务器使用它来确定是否必须将数据字典升级到较新的版本。

l  events:有关事件计划程序事件的信息。服务器在其启动序列期间加载此表中列出的事件,除非使用--skip-grant-tables选项启动。

l  foreign_keys,foreign_key_column_usage:有关外键的信息。

l  index_column_usage:有关索引使用的列的信息。

l  index_partitions:有关索引使用的分区的信息。

l  index_stats:用于存储执行ANALYZE TABLE时生成的动态索引统计信息。

l  indexes:有关表索引的信息。

http://www.cndba.cn/Expect-le/article/3141

l  innodb_ddl_log:存储用于崩溃安全DDL操作的DDL日志。

l  parameter_type_elements:有关存储过程和函数参数的信息,以及有关存储函数的返回值的信息。

l  parameters:有关存储过程和函数的信息。http://www.cndba.cn/Expect-le/article/3141

l  resource_groups:有关资源组的信息。http://www.cndba.cn/Expect-le/article/3141

l  routines:有关存储过程和函数的信息。

l  schemata:有关schemata的信息。在MySQL中,模式是一个数据库,因此该表提供了有关数据库的信息。

l  st_spatial_reference_systems:有关空间数据的可用空间参照系的信息。

l  table_partition_values:有关表分区使用的值的信息。

l  table_partitions:有关表使用的分区的信息。http://www.cndba.cn/Expect-le/article/3141

l  table_stats:执行ANALYZE TABLE时生成的动态表统计信息。

l  tables:有关数据库中表的信息。

l  tablespace_files:有关表空间使用的文件的信息。

l  tablespaces:有关活动表空间的信息。

l  triggers:触发器的信息。

l  view_routine_usage:有关视图与它们使用的存储函数之间的依赖关系的信息。http://www.cndba.cn/Expect-le/article/3141

l  view_table_usage:用于跟踪视图及其基础表之间的依赖关系。http://www.cndba.cn/Expect-le/article/3141

版权声明:本文为博主原创文章,未经博主允许不得转载。

数据字典

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1566863次
  • 积分:1957
  • 等级:核心会员
  • 排名:第4名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ