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

2023-09-16 21:07:47


【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
编辑|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

参考

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

更多推荐

Git错误解决:如何处理“could not determine hash algorithm“问题

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

帆软BI开发-Day2-趋势图的多种变形

前言:在BI数据展示中,条形图、趋势图无疑是使用场景非常多的两种图形。与条形图不同的是,趋势图更能反馈出一定的客观规律和未来的趋势走向,因此用于作为预警和判异的业务场景,但实际业务场景的趋势图可没你想的那么简单,今天我们一起来讨论下怎么在帆软上实现复杂的趋势图的需求吧。一、自我介绍-趋势图1、自我介绍帆软趋势图是一种基

CSS的var()函数用法与JS获取css函数变量值的方法

项目场景我们常在项目里见到这种写法。<template><divid="dashboardLayout":style="styleCSSVariable"></div></template>可以看到,根元素这里使用了一个名为styleCSSVariable的CSS集。这里的实现是:getstyleCSSVariable

机器视觉检测在流水线上的技术应用

机器视觉在流水线上的应用机器视觉系统的主要功能可以简单概括为:定位、识别、测量、缺陷检测等。相对于人工或传统机械方式而言,机器视觉系统具有速度快、精度高、准确性高等一系列优点。随着工业现代化发展,机器视觉已经广泛应用于各大领域。为企业及用户提供更优的产品品质及完美解决方案。流水线视觉检测是机器视觉应用最多的场合,流水线

视觉检测系统可以检测太阳能电池片哪些方面的缺陷?

近年来,随着全球工业化进程的不断加快,能源与环境危机成为一个亟待解决的问题。为此,太阳能作为一种清洁可再生的能源,现已被广泛应用于各领域。太阳能电池片作为太阳能转换为电能的核心载体,其质量的好坏决定着电能的转换效率。在从硅片到太阳能电池片的生产过程中会产生污点、破损等各种缺陷,需要进行多重检测工序。手动检测效率低下,容

unordered_set和unordered_map的封装

目录一、前言二、容器的使用1、unordered_map2、unordered_set​编辑三、哈希表的改造1、结点2、哈希表的迭代器*构造函数*重载**重载->*重载++*重载!=和==3、哈希表的析构4、unordered_map的[]实现5、修改后的哈希表四、unordered_set的实现五、unordered

NSS [NISACTF 2022]is secret

NSS[NISACTF2022]issecret原题是[CISCN2019_华东南赛区]Double_Secret开题蒙蔽。猜测是/secret路由,猜对了。GET提交参数?secret=1,这里应该是一个注入点。看了一下network,后端语言是python2,不确定是哪种漏洞,所有想到的都测一遍,最后在测SSTI时

【2023年11月第四版教材】第14章《沟通管理》(第二部分)

第14章《沟通管理》(第二部分)4规划沟通管理4.1规划沟通管理4.2沟通技术4.3沟通模型4.4沟通方法★★★(22下案例)4.5人际关系与团队技能4.6沟通管理计划★★★(18下44)(13上论文)(22下案例)5管理沟通5.1管理沟通5.2沟通技能5.3人际关系与团队技能6监督沟通6.1监督沟通★★★6.2人际关

Tomcat架构设计及组件详解

继Tomcat配置详解(Tomcat配置server.xml详解)Tomcat配置详解(Tomcat配置server.xml详解)_tomcatxml配置https://blog.csdn.net/imwucx/article/details/132166738文章之后,深入的学习tomcat相关知识,对Tomcat的

自动驾驶中的决策规划

参考:【干货篇】轻舟智航:自动驾驶中的决策规划技术(附视频回放+PPT下载)-AIQ如图所示,各模块介绍定位模块主要负责解答的问题是“车现在在哪里”,是在道路上还是在路口,是在高架桥上还是在停车场里。感知模块则负责解答“车周围有什么”这个问题。预测模块,预测模块主要解答“周围的车现在想干什么”,比如前面的车要cutin

全流程HEC-RAS 1D/2D水动力与水环境模拟丨恒定流模型(1D/2D)、一维非恒定流、二维非恒定流模型、HEC-RAS水质模型

目录​专题一​水动力模型基础专题二恒定流模型(1D/2D)专题三一维非恒定流专题四二维非恒定流模型(一)专题五二维非恒定流模型(二)专题六HEC-RAS的水质模型专题七高级主题更多应用水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而,一方面水动力和水环境模

热文推荐