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





相关推荐
m0_64880493_江哥6 小时前
用正则方法从中英文本提取英文的python示例
python·mysql·正则表达式
九皇叔叔8 小时前
Linux Shell 正则表达式:从入门到实战,玩转文本匹配与处理
linux·mysql·正则表达式
Wang's Blog9 小时前
MySQL: 高并发电商场景下的数据库架构演进与性能优化实践
mysql·性能优化·数据库架构
程序新视界10 小时前
什么是MySQL JOIN查询的驱动表和被驱动表?
数据库·后端·mysql
一匹电信狗10 小时前
【MySQL】数据库的相关操作
linux·运维·服务器·数据库·mysql·ubuntu·小程序
陈一Tender11 小时前
JavaWeb后端实战(登录认证 & 令牌技术 & 拦截器 & 过滤器)
java·开发语言·spring boot·mysql
Cabbage_acmer13 小时前
MySQL期中考试突击!
数据库·mysql
chenzhou__16 小时前
MYSQL学习笔记(个人)(第十五天)
linux·数据库·笔记·学习·mysql
一只自律的鸡16 小时前
【MySQL】第二章 基本的SELECT语句
数据库·mysql
@yanyu6661 天前
idea中配置tomcat
java·mysql·tomcat