• MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点5:数据字典(Data Dictionary)


    文章目录

    • MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点5:数据字典(Data Dictionary)
      • File-based Metadata Storage (基于文件的元数据存储)
      • Transactional Data Dictionary (事务数据字典)
      • Serialized Dictionary Information (SDI) :数据字典的序列化(持久化存储)
      • Dictionary Object Cache(数据字典对象缓存)
      • 例题
      • 参考

    【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
    编辑|SQL和数据库技术(ID:SQLplusDB)

    MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点5:数据字典(Data Dictionary)

    元数据 是数据库中描述数据的数据,包括各种数据库对象的定义,例如:

    • 表和列的定义
    • 索引和约束的定义
    • 用户和权限的定义

    而数据字典就是存储元数据的地方。

    File-based Metadata Storage (基于文件的元数据存储)

    MySQL 8.0之前的版本,数据字典中的元数据是存放在不同的元数据文件中。

    File TypeDescription
    .frm files表的元数据文件。
    .par files分区定义文件。
    随着InnoDB表的本地分区支持的引入,在MySQL 5.7中InnoDB停止使用分区定义文件。
    .TRN files触发器命名空间文件。
    .TRG files触发器参数文件。
    .isl filesInnoDB符号链接文件,包含在数据目录之外创建的文件表空间文件的位置。
    db.opt files数据库配置文件。
    每个数据库目录有一个这样文件,包含数据库默认字符集属性。
    ddl_log.log file元数据操作记录文件。
    该文件包含由数据定义语句(如DROP TABLE和ALTER TABLE)生成的元数据操作记录。

    Transactional Data Dictionary (事务数据字典)

    从MySQL 8.0开始,数据字典信息集中存放在InnoDB的数据字典表中。

    • 数据字典表归属于mysql database
    • 存放在一个单一的InnoDB表空间中,即在MySQL数据目录中名为mysql.ibd的文件
    • INFORMATION_SCHEMA的一些表和 SHOW 语句作为访问数据字典的接口

    Serialized Dictionary Information (SDI) :数据字典的序列化(持久化存储)

    MySQL 8.0开始对数据字典的存储进行了修改,即将存储在.frm、.par、.TRN等系统文件中的数据字典信息存储到InnoDB的字典表中。
    同时,除了在数据字典中存储元数据外,MySQL还以序列化(SDI)的形式存储它。

    Serialized Dictionary Information (SDI)是MySQL中存储关于数据库对象的元数据(数据字典)的一种形式,用于提供元数据的冗余性。
    SDI数据通过对表进行DDL操作或CHECK TABLE FOR UPGRADE进行更新,并且以JSON格式存储。

    对于SDI信息的存储,会根据存储引擎的不同有所不同:

    • InnoDB将SDI数据与数据一起存储在其表空间文件中。
      -除了临时表空间和撤销表空间文件外,SDI存在于所有InnoDB表空间文件中。
      -InnoDB表空间文件中的SDI记录仅描述表和表空间对象。
    • NDBCLUSTER将SDI数据存储在NDB字典中。
    • 其他存储引擎(如MyISAM等)将SDI数据存储在数据库目录中的.sdi文件中。

    参考:
    https://dev.mysql.com/doc/refman/8.0/en/serialized-dictionary-information.html

    对于SDI信息,可以通过MySQL提供的ibd2sdi工具进行查看和转储。

    关于ibd2sdi工具可以参考如下文章:

    【MySQL】ibd2sdi工具介绍和使用
    https://teacherwhat.blog.csdn.net/article/details/132917728

    Dictionary Object Cache(数据字典对象缓存)

    数据字典对象缓存是一个共享的全局缓存,将先前访问过的数据字典对象存储在内存中,以实现对象的重用并最小化磁盘I/O。
    与MySQL使用的其他缓存机制类似,数据字典对象缓存使用基于LRU的驱逐策略,从内存中驱逐最近未使用的对象。
    数据字典对象缓存由存储不同对象类型的缓存分区组成。
    某些缓存分区的大小限制是可配置的,而其他分区的大小是硬编码的。

    Cache PartitionDescriptionVariableDefault value
    tablespace definition cache partitionStores tablespace definition objectstablespace_definition_cache256
    schema definition cache partitionStores schema definition objectsschema_definition_cache256
    table definition cache partitionStores table definition objectsmax_connections151
    stored program definition cache partitionStores stored program definition objectsstored_program_definition_cache256
    character set definition cache partitionStores character set definition objects-hardcoded object limit of 256
    collation definition cache partitionStores collation definition objects-hardcoded object limit of 256

    参考:
    https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-object-cache.html

    例题

    Choose three.
    Which three methods display the complete table definition of an InnoDB table?
    
    A) hexdump -v -C table.frm
    B) REPAIR TABLE table USE_FRM
    C) mysqldump --no-data schema table
    D) Query the Information Schema.
    E) SELECT * FROM table 1\G
    F) SHOW CREATE TABLE
    
    Answer:CDF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    参考

    Chapter 14 MySQL Data Dictionary
    https://dev.mysql.com/doc/refman/8.0/en/data-dictionary.html

    https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-0.html#mysqld-8-0-0-data-dictionary
    https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-12.html#mysqld-8-0-12-data-dictionary

  • 相关阅读:
    Golang笔试题:编写一个函数,接收一个整数参数n,输出n的阶乘结果
    servlet和vue的增删改查
    css 图片好玩的一个属性,添加滤镜
    机器学习数据集读取和预处理
    图论进阶算法知识点整合
    对抗微信如何要把网页都变成快应用
    「数据结构」哈希表2:实现哈希表
    关于windows上使用qemu分别仿真stm32和a9以及串口输出
    C#:实现动态规划动态硬币兑换算法(附完整源码)
    Socket 编程
  • 原文地址:https://blog.csdn.net/lukeUnique/article/details/132699711