Mysql中的存储引擎InnoDB的行格式或记录格式

本文介绍了MySQL中InnoDB存储引擎的工作原理,包括数据的磁盘存储和内存处理,以及InnoDB的页大小。重点讲解了InnoDB的行格式,如Dynamic、Compressed,以及如何查看和修改行格式。此外,还对比了Memory存储引擎的特点,强调了InnoDB的持久性和行溢出数据处理方式。
摘要由CSDN通过智能技术生成

在数据库中我们可以通过命令:show engines;看到数据库中的存储引擎。InnoDB是数据库默认的存储引擎,InnoDB中数据是存储在磁盘中的,但数据的处理是在内存中进行的,会将数据从磁盘中加载到内存中,在内存中对数据进行修改或者添加等操作后又将数据刷新到磁盘中,由于InnoDB数据是存储在磁盘中的所以关闭服务器(关机重启)后也是有数据的。

磁盘中的数据加载到内存中,InnoDB采取的方式是:将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为 16 KB。也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。

Memory存储引擎的数据没有存储到磁盘中,关闭服务器后表中的数据也会消失。

Memory:

  1.将表中的数据存放在内存中,如果数据库重启或发生崩溃,表中的数据都将消失。

  2.它非常适合存储临时数据的临时表.默认采用哈希索引。

  3.只支持表锁,并发性较差。

在表中插入数据:是以记录为单位向表中插入数据的,记录是以行的形式存储的。这意味着页中保存着表中一行行的数据。这些记录在磁盘上的存放方式也被称为行格式或者记录格式。InnoDB存储引擎提供了CompactRedundantDynamic和Compressed行格式来存放行记录数据。

我们可以通过命令:show table status like 'table_name';来查看表中的记录格式。

Row_format:Dynamic 就代表了当前使用的行记录结构类型。

1.Compressed行格式和Dynamic不同的一点是,Compressed行格式会采用压缩算法对页面进行压缩,以节省空间。

2.指定和修改行格式的语法如下:

CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称

ALTER TABLE 表名 ROW_FORMAT=行格式名称

 

3.Dynamic和Compressed行格式:

这两种行格式类似于COMPACT行格式,不同处是处理行溢出数据时有点儿分歧,它们不会在记录的真实数据处存储字符串的前768个字节,而是把所有的字节都存储到其他页面中,只在记录的真实数据处存储其他页面的地址。

4.一个页一般是16KB,当记录中的数据太多,当前页放不下的时候,会把多余的数据存储到其他页中,这种现象称为行溢出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值