栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

InnoDB记录存储结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

InnoDB记录存储结构

InnoDB记录存储结构
  • InnoDB页简介
  • 行格式
    • 指定行格式的语法
    • COMPACT行格式

InnoDB页简介

InnoDB是一个将表中的数据存储到磁盘上的存储引擎,即使我们关闭重启服务器,数据还是存在。而真正处理数据的过程发生在内存中,所以需要把磁盘中的数据加载到内存中。如果是处理写入或者修改请求,还需要把内存中的内容刷新到磁盘上。而我们知道读写磁盘的速度非常慢,与读写内存差了几个数量级。当我们想从表中获取某些记录时,InnoDB存储引擎需要一条一条地把数据从磁盘上读出来吗?不,那样会慢死,InnoDB采取的方式是,将数据划分为若干页,以页作为磁盘和内存之间交互的基本单位。InnoDB中页的大小一般为16KB。也就是在一般情况下,一次最少从磁盘读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。
PS:系统变量Innodb_page_size表明了InnoDB存储引擎中页的大小,默认值16384字节,也就是16KB。该变量只能在第一次初始化MySQL数据目录时指定,之后就再也不能更改了(通过mysqld --initalize来初始化数据目录)

行格式

我们平时都是以记录为单位向表中插入数据的,这些记录在磁盘上的存放形式也被称为行格式或者记录格式,目前InnoDB存储引擎设计了4种不同的行格式,分别是COMPACT、REDUNDANT、DYNAMIC、COMPRESSED。

指定行格式的语法
创建表
CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称;
例子:
CREATE TABLE record_format_demo (
	c1 VARCHAR(10),
	c2 VARCHAR(10) NOT NULL,
	c3 CHAR(10),
	c4 VARCHAR(10)
) CHARSET=ascii ROW_FORMAT=COMPACT;

修改表
ALTER TABLE 表名 ROW_FORMAT=行格式名称;
COMPACT行格式

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583259.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号