【MySQL 数据宝典】【磁盘结构】- 002 数据字典

news/2024/9/25 7:50:58/

一、数据字典 ( Data Dictionary )

1.1 背景介绍

我们平时使用 INSERT 语句向表中插入的那些记录称之为用户数据,MySQL只是作为一个软件来为我们来保管这 些数据,提供方便的增删改查接口而已。但是每当我们向一个表中插入一条记录的时候,MySQL先要校验一下插 入语句对应的表存不存在,插入的列和表中的列是否符合,如果语法没有问题的话,还需要知道该表的聚簇索引 和所有二级索引对应的根页面是哪个表空间的哪个页面,然后把记录插入对应索引的 B+ 树中。所以说,MySQL 除了保存着我们插入的用户数据之外,还需要保存许多额外的信息,比方说:

  • 某个表属于哪个表空间,表里边有多少列
  • 表对应的每一个列的类型是什么
  • 该表有多少索引,每个索引对应哪几个字段,该索引对应的根页面在哪个表空间的哪个页面
  • 该表有哪些外键,外键对应哪个表的哪些列
  • 某个表空间对应文件系统上文件路径是什么
  • balabala … 还有好多,不一一列举了

1.2 基础结构

可以看到 MySQL中的数据字典是一个重要的组成部分,它包含了数据库的各种元数据信息,如表结构、数据库名或表名、字段的数据类型、视图、索引、存储过程、触发器等内容。
image.pngimage.png

1.2.1 核心存储内容

  1. 表结构:包括表名、字段名、字段类型、字段约束等信息。
  2. 数据库名或表名:标识数据库和表的名称。
  3. 字段的数据类型:定义了每个字段的数据类型,如整型、字符型等。
  4. 视图:虚拟表,由一个或多个表的行或列组成,可以简化复杂查询。
  5. 索引:提高数据检索效率的数据结构,包括主键索引、唯一索引、普通索引等。
  6. 存储过程:存储在数据库中的一组SQL语句,可被重复调用。
  7. 触发器:与表相关联的一段SQL代码,当指定的事件发生时自动执行。

1.3 特点

  • InnoDB数据字典由内部系统表组成,这些表包含用于查找表、索引和表字段等对象的元数据。
  • 在MySQL 8.0之前,由于历史原因,数据字典元数据在一定程度上与InnoDB表元数据文件(.frm文件)中存储的信息重叠。

注: MySQL8.0版本以后 将所有原先存放于数据字典文件中的信息,全部存放到数据库系统表中,即将之前版本的 .frm,.opt等文件都移除了,不再通过文件的方式存储数据字典信息


http://www.ppmy.cn/news/1430783.html

相关文章

Environment Modules工具

Environment Modules工具 简介 Module是一个环境变量管理工具,可以很好的实现开发环境的切换。 具体可以查看官网文档 安装 安装(安装完成之后需要exit重新登录一下才会生效) yum install -y environment-modules命令介绍 module avai…

Vue2 基础学习-案例实践

数据管理信息的增删改查的实践 主要应用&#xff1a; 数据插值&#xff1a; {{xxx}}双向绑定&#xff1a;v-model点击事件函数&#xff1a;click列表xxx的增删改实现 xxx.push(row) 增加xxx.splice(id,1) 删除 一行{x,y} xxx[id]; 编辑 <!DOCTYPE html> <html la…

(避雷指引:管理页面超时问题)windows下载安装RabbitMQ

一、背景&#xff1a; 学习RabbitMQ过程中&#xff0c;由于个人电脑性能问题&#xff0c;直接装在windows去使用RabbitMQ&#xff0c;根据各大网友教程&#xff0c;去下载安装完之后&#xff0c;使用web端进行简单的入门操作时&#xff0c;总是一直提示超时&#xff0c;要么容…

mysql面试题七(集群)

目录 1.mySQL 中有哪些常见日志 错误日志&#xff08;Error Log&#xff09; 二进制日志&#xff08;Binary Log, Binlog&#xff09; 重做日志&#xff08;Redo Log&#xff09; 回滚日志&#xff08;Undo Log&#xff09; 慢查询日志&#xff08;Slow Query Log&#xf…

Vue3 Reactive和Ref

当你在使用Vue 3时&#xff0c;reactive 和 ref 是两个常用的响应式API。它们都是用来跟踪状态变化并在UI中进行响应式更新的。 1. ref ref 用于创建一个响应式的基本数据类型变量&#xff0c;例如数字、字符串等。它返回一个带有 .value 属性的对象&#xff0c;该属性包含了…

Linux 目录操作函数

目录操作函数 ls -l 可以查看目录中文件的信息&#xff0c;比如&#xff1a; petriXX:~/lesson01/05_io/目录操作函数$ ls -l a.txt -rw-r--r-- 1 petri petri 0 Apr 22 18:51 a.txtLinux系统中的目录操作函数&#xff1a; int rename(const char *oldpath, const char *new…

【C++提高】算法

算法 一、遍历算法1. for_each2. transform 二、查找算法1. find2. find_if3. adjacent_find4. binary_search5. count6. count_if 三、排序算法1. sort2. random_shuffle3. merge4. reverse 四、拷贝和替换算法1. copy2. replace3. replace_if4. swap 五、算术生成算法1. accu…

国产人工智能语言大模型相关网站

以下给大家分享了一些国产人工智能语言大模型相关网站&#xff0c;仅供参考。&#xff08;大语言模型仅仅是作为辅助工具&#xff0c;实际应用中还是要多思考和学习&#xff09; 1.字节豆包&#xff1a;豆包 2.文心一言&#xff1a;文心一言 3.讯飞星火&#xff1a;讯飞星火…