当前位置:   article > 正文

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

mysql ocp8 培训

文章目录

  • 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/628204
推荐阅读
相关标签
  

闽ICP备14008679号