导航:首页 > 数据分析 > 数据字典在哪个表中

数据字典在哪个表中

发布时间:2025-04-24 23:49:28

① "数据字典"指的是什么

一、数据字典并不是传统的纸质字典,它是一些系统自带表,可以查询数据库相关信息,一般存在于电脑系统或是其它电子系统中,供人查阅不了解条目的信息与解释。
数据字典存储有关数据的来源、说明、与其他数据的关系、用途和格式等信息,它本身就是一个数据库,存储“关于数据项的数据”。数据字典是个指南,它为数据库提供了“路线图”,而不是“原始数据”。
换句话说,数据字典通常是指数据库中数据定义的一种记录,类似一个数据库的数据结构,但其内容要比数据库的数据结构描述丰富得多(Malamud, 1989)。在收集有关数据信息,建立数据库的初始阶段,必须建立数据项的命名约定,必须统一不同部门、不同个人之间对共同关心的数据的内涵、来源和命名的观念。
这个过程要涉及数据监管人、用户和数据库开发人员,是一个需要反复多次的过程。这个统一的命名约定,及其附带的说明,就是数据字典。
二、数据字典内容包括:
1、数据库中所有模式对象的信息,如表、视图、簇、及索引等;
2、分配多少空间,当前使用了多少空间等;
3、列的缺省值;
4、约束信息的完整性;
5、用户的名字;
6、用户及角色被授予的权限;
7、用户访问或使用的审计信息;
8、其它产生的数据库信息。

② MySQL Data Dictionary 详解

在 MySQL 8.0 之前,Server 层和存储引擎(例如 InnoDB)各自保留元数据,如 schema 名称、表定义等,导致信息存储重复冗余,且存在元数据不同步的问题。不同引擎间元数据存储形式和位置的差异(如.FRM, .PAR, .OPT, .TRN and .TRG 文件)使得元数据管理分散且复杂。将元数据存放在不支持事务的表和文件中,使 DDL 变更非原子,增加了崩溃恢复的难度。为解决这些挑战,MySQL 8.0 引入了 data dictionary,实现统一的元数据管理。

data dictionary 通过 Server 层和引擎层共享的 InnoDB 引擎表存储元数据,支持原子性操作,有效避免了元数据不同步的问题。它提供统一的 client API,包括元数据的基本操作(如获取、删除、存储、更新)。底层实现包括对 InnoDB 引擎数据字典表的读写操作,以及两级缓存加速内存访问,提高性能。

在内存和引擎层面,data dictionary 的数据结构遵循多态和接口/实现设计模式。Table_impl 是一个常访问的内存结构,包含表相关的元数据属性,如基本引擎类型、注释、分区类型等。Table_impl 还集成列信息、索引信息和分区信息等复杂属性,这些属性来自其他 DD 表。Column_impl 和 Partition_impl 分别表示列和分区的元信息,与 Table_impl 联系。

Table_impl 的持久化存储和访问通过 DD tables 实现,这些表存储在 mysql 表空间中,用户可通过 INFORMATION SCHEMA 查看部分视图。获取表元信息时,会调用 Storage_adapter::get() 接口,该接口根据 Tables 对象的枚举类型下标查找表定义中的列。

data dictionary 实现了两级缓存:一级是客户端本地的缓存,用于加速对相同对象的重复访问;二级是多线程共享的缓存,确保所有线程可访问并处理并发访问。缓存底层统一基于哈希表实现。

局部缓存位于每个 Dictionary_client 内部,管理不同类型的对象缓存,包含 committed、uncommitted 和 dropped 状态的对象。共享缓存是全局唯一的,通过 Shared_dictionary_cache 实现,包含针对各种类型对象的缓存。

缓存获取过程从一级局部缓存到二级共享缓存,最后到存储引擎。在缓存中获取时,优先查找 uncommitted 和 dropped 的 registry,然后是 committed registry,如果未找到,则从存储引擎加载。

在缓存 miss 的处理中,共享缓存会加锁后进行 hash map 查找,若存在则增加引用计数并返回;若不存在,则从存储引擎加载并加入缓存。并发控制通过广播和等待机制实现。

Auto_releaser 类用于确保在作用域内获取的 DD cache 对象不被释放,通过链式管理在不同层次间转移释放需求。在 DDL 过程中,通过 data dictionary 完成表定义的删除和存储。

总结而言,MySQL data dictionary 通过统一的管理、高效的缓存机制和原子性操作,显著提高了元数据的管理效率和安全性,简化了跨层访问的复杂性。

③ 数据字典与表有什么联系和区别

区别: 在数据库中,数据字典描述了一组表、视图和索引的结构定义。数据字典信息通常存放在数据库的系统表中。而表描述的是用户数据的结构。
联系:数据字典描述了表的元信息,即表的结构和定义的相关信息。

阅读全文

与数据字典在哪个表中相关的资料

热点内容
快速复制苹果手机的文件到电脑 浏览:545
传奇物品文件是哪个 浏览:565
怎么对cad文件保护 浏览:50
win10内置的ubuntu在哪个文件夹 浏览:530
怎么制作自己的专属网站 浏览:816
西安广电网络有哪些分公司 浏览:67
shell写入文件第一行 浏览:639
怎么让便签里的网站关闭 浏览:554
oracle数据库用户切换 浏览:267
手机怎么把文件搬到sd 浏览:744
lib属于什么文件 浏览:134
安卓征服时代 浏览:968
苹果手机保存文件格式 浏览:669
dnf90版本男机械纵火9 浏览:135
编程课下单怎么取消 浏览:15
如何感性的做出数据 浏览:456
java新框架技术 浏览:558
大型数据库用什么电脑 浏览:422
常德哪里有数控编程 浏览:251
doc属于什么视频文件 浏览:664

友情链接