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





相关推荐
这个DBA有点耶2 小时前
从INDEX到JOIN_ORDER:MySQL 8.0 Hint语法体系与五类实战场景
数据库·mysql·架构
夜雪一千2 小时前
MySQL 的ID用什么数据类型更好?主键ID选型实战
数据库·mysql
斯内普吖3 小时前
(开源)线上花店系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源
tryxr5 小时前
数据库如何通过 MVCC 实现隔离性
数据库·mysql·mvcc·隔离性
yeflx6 小时前
Ubuntu22.04安装Mysql Workbench
数据库·mysql·adb
夜雪一千6 小时前
MySQL 自增 ID 的底层原理与坑点
android·mysql·adb
for_ever_love__6 小时前
半同步复制:数据安全和服务可用之间怎么权衡
redis·mysql·缓存·一致性·数据·半同步复制·方式
曦夜日长7 小时前
MySQL系统篇,安装部署(一):CentOS 7 下从卸载到登录的完整实战
数据库·mysql·centos
AI源码7 小时前
PC 手机电商(MySQL 版)
数据库·mysql·智能手机
木棉软糖8 小时前
JDBC 读 ResultSet 读到一半,报 stream closed
java·mysql·spring