MySQL高级-MVCC-隐藏字段

文章目录

  • 1、介绍
  • 2、测试
    • [2.1、进入服务器中的 /var/lib/mysql/atguigu/](#2.1、进入服务器中的 /var/lib/mysql/atguigu/)
    • [2.2、查看有主键的表 stu](#2.2、查看有主键的表 stu)
    • [2.3、查看没有主键的表 employee](#2.3、查看没有主键的表 employee)

1、介绍

sql 复制代码
+----+-----+-------+
| id | age | name  |
+----+-----+-------+
|  1 |   1 | Jsp   |
|  3 |   3 | cat   |
|  8 |   8 | rose  |
| 11 |  11 | jetty |
| 19 |  19 | lily  |
| 25 |  25 | luci  |
+----+-----+-------+

当我们创建了上面的这张表,我们在查看表结构的时候,就可以显式的看到这三个字段。 实际上除了这三个字段以外,InnoDB还会自动的给我们添加三个隐藏字段及其含义分别是:

隐藏字段 含义
DB_TRX_ID(Database Transaction Identifier)数据库事务标识符 最近修改事务ID,记录插入这条记录或最后一次修改该记录的事务ID
DB_ROLL_PTR (Database Rollback Pointer)数据库回滚指针 回滚指针,指向这条记录的上一个版本,用于配合 undo log,指向上一个版本
DB_ROW_ID(Database Row Identifier) 数据库行标识符 隐藏主键,如果表结构没有指定主键,将会生成该隐藏字段

而上述的前两个字段是肯定会添加的, 是否添加最后一个字段DB_ROW_ID,得看当前表有没有主键,

如果有主键,则不会添加该隐藏字段。

2、测试

2.1、进入服务器中的 /var/lib/mysql/atguigu/

sql 复制代码
[root@localhost ~]# cd /var/lib/mysql/atguigu
[root@localhost atguigu]# ll
总用量 4149624
-rw-r-----. 1 mysql mysql     114688 6月  29 17:06 account.ibd
-rw-r-----. 1 mysql mysql     131072 6月  29 12:57 course.ibd
-rw-r-----. 1 mysql mysql     131072 6月  29 21:50 stu.ibd
-rw-r-----. 1 mysql mysql 4127195136 6月  28 19:53 tb_sku.ibd
-rw-r-----. 1 mysql mysql  121634816 6月  28 19:23 tb_user.ibd
[root@localhost atguigu]# 

2.2、查看有主键的表 stu

bash 复制代码
[root@localhost atguigu]# ibd2sdi stu.ibd 

ibd2sdi (index binary directory to space dictionary index)索引二进制目录到空间字典索引





2.3、查看没有主键的表 employee

2.3.1、创建表 employee

sql 复制代码
mysql> create table employee (id int , name varchar(10));
Query OK, 0 rows affected (0.02 sec)

mysql> select * from employee;
Empty set (0.00 sec)

mysql> 

2.3.2、查看表结构及其其中的字段信息

bash 复制代码
[root@localhost atguigu]# ibd2sdi employee.ibd





相关推荐
瓜牛_gn2 小时前
mysql特性
数据库·mysql
Yaml47 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
追风林8 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
Hsu_kk10 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境10 小时前
第02章 MySQL环境搭建
数据库·mysql
knight-n10 小时前
MYSQL库的操作
数据库·mysql
eternal__day12 小时前
MySQL_聚合函数&分组查询
数据库·mysql
咕哧普拉啦12 小时前
乐尚代驾十订单支付seata、rabbitmq异步消息、redisson延迟队列
java·spring boot·mysql·spring·maven·乐尚代驾·java最新项目
春哥的魔法书13 小时前
数据库基础(5) . DCL
数据库·mysql
鬼才血脉14 小时前
docker+mysql配置
mysql·adb·docker