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





相关推荐
ClouGence5 小时前
最基础的异构数据库 DDL 同步,我们踩过哪些坑?
数据库·mysql·postgresql
小呆爱发呆6 小时前
第三章 MySQL 库表操作
数据库·mysql·adb
普通人67 小时前
MySQL_FIND_IN_SET函数详解
android·数据库·mysql
真上帝的左手7 小时前
4. 关系型数据库-MySQL-Canal 进阶
数据库·mysql·canal
codeejun8 小时前
每日一Go·MySQL-14、慢 SQL 产生原因全解
sql·mysql·golang
星恒随风1 天前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Pniubi1 天前
MySQL靠什么实现事务的?事务隔离级别有哪些?
java·数据库·mysql
aiks_yuan1 天前
MySQL 死锁怎么排查:看懂 INNODB STATUS 死锁日志,先查后插为什么必死锁(MySQL 8.2 实测)
mysql
进击的荆棘1 天前
MySQL——库的操作
数据库·mysql
计算机毕设定制辅导-无忧学长1 天前
《基于Spring Boot的迷游哈游戏综合服务平台的开发》
java·vue.js·spring boot·mysql·迷游哈游戏综合服务平台