在往期我们提过InnoDB存储引擎有了比较好的处理能力,那么它在存储记录上是非常强大的,就拿行数据来说,是一个庞大的数字。而行记录的格式上有Compact 和 Redundant 两种模式,具体二者的不同也会在下文中进行说明。下面我们就一起看看InnoDB存储记录的方法和它的格式吧。
1.InnoDB方法
与现有的大多数存储引擎一样,InnoDB使用页作为磁盘管理的最小单位;数据在 InnoDB 存储引擎中都是按行存储的,每个16KB大小的页中可以存放2-7992行的记录。(至少是2条记录,最多是7992条记录)
当 InnoDB 存储数据时,它可以使用不同的行格式进行存储;MySQL 5.7 版本支持以下格式的行存储方式:
Antelope 是 InnoDB 最开始支持的文件格式,它包含两种行格式 Compact 和 Redundant,它最开始并没有名字;Antelope 的名字是在新的文件格式 Barracuda 出现后才起的,Barracuda 的出现引入了两种新的行格式 Compressed 和 Dynamic;InnoDB 对于文件格式都会向前兼容,而官方文档中也对之后会出现的新文件格式预先定义好了名字:Cheetah、Dragon、Elk 等等。
2.两种行记录格式 Compact 和 Redundant 在磁盘上按照以下方式存储:
Compact 和 Redundant 格式不同就是记录格式的第一个部分;在 Compact 中,行记录的第一部分倒序存放了一行数据中列的长度(Length),而 Redundant 中存的是每一列的偏移量(Offset),从总体上上看,Compact 行记录格式相比 Redundant 格式能够减少 20% 的存储空间。
拓展:mysql日期和时间函数
1.MONTH(date)和MONTHNAME(date)
前者返回指定日期中的月份,后者返回指定日期中的月份的名称
2.DAYNAME(d)、DAYOFWEEK(d)、WEEKDAY(d)
DAYNAME(d)返回d对应的工作日的英文名称,如Sunday、Monday等;DAYOFWEEK(d)返回的对应一周中的索引,1表示周日、2表示周一;WEEKDAY(d)表示d对应的工作日索引,0表示周一,1表示周二
3.WEEK(d)、WEEKOFYEAD(d)
前者计算日期d是一年中的第几周,后者计算某一天位于一年中的第几周
4.DAYOFYEAR(d)、DAYOFMONTH(d)
前者返回d是一年中的第几天,后者返回d是一月中的第几天
5.YEAR(date)、QUARTER(date)、MINUTE(time)、SECOND(time)
YEAR(date)返回指定日期对应的年份,范围是1970~2069;QUARTER(date)返回date对应一年中的季度,范围是1~4;MINUTE(time)返回time对应的分钟数,范围是0~59;SECOND(time)返回制定时间的秒值
以上就是在mysql中使用InnoDB进行存储记录的方法,主要是通过按行存储实现,格式上有Compact 和 Redundant两种,小伙伴们都学会了没有~
伴沃教育还为您提供以下相关内容希望对您有帮助:
MySQL中ibd文件的作用及管理方法mysql中ibd
一、.ibd文件的作用 .ibd文件是InnoDB独有的存储方式,它是InnoDB表中存储数据的文件。InnoDB表是MySQL的一个事务型存储引擎,通过将数据分为多个表空间,并且使用相应的.ibd文件来管理每个表空间,以实现数据的持久化存储。在InnoDB引擎中,表的存储结构是B+树结构。而B+树的叶子节点中存储的就是数据...
MySQL三种常用数据表模式解析mysql三大模式
1.InnoDB数据表模式 InnoDB是MySQL中常用的一种存储引擎,在MySQL 5.5之后已成为默认的存储引擎。它是一个事务安全的存储引擎,支持外键约束,并具有锁定、回滚和崩溃恢复的功能。 InnoDB也支持MVCC(多版本并发控制)技术,可以提高并发访问的效率。CREATE TABLE `table_name` (`id` int(11) NOT NULL...
mysql的innodb数据库引擎详解
1、由于硬件的发展,现在的硬件性能已经提高了很多,如果innodb每秒最大刷新100个脏页,那么效率会很低,为了解决这个问题,innodb plugin提供了一个参数innodb_io_capacity,用来表示磁盘IO的吞吐量,默认值是200,规则如下:在合并插入缓存时,合并插入缓存的数量为innodb_io_capacity的5%;在从缓冲区刷新脏页时,啥新脏页的数量...
mysql中的engine=innodb;是什么意思?
InnoDB是MySQL的默认存储引擎之一。 在MySQL中,存储引擎决定了数据如何在数据库中存储以及如何进行访问。InnoDB提供了诸如事务支持、行级锁定和外键约束等高级数据库功能。由于其特性,InnoDB在需要高并发、高可靠性以及事务安全的应用场景中表现优异。在创建MySQL表时,可以通过指定engine参数来选择存储引擎。 ...
MySQL三个核心线程的功能和作用简介mysql三个线程
1、数据同步:将主数据库中的数据同步到从数据库中;2、权限同步:保证从数据库与主数据库的权限一致;3、延时同步:支持从数据库的延时同步功能;4、数据备份:可以将从数据库作为备份来使用,提供数据备份的功能。总结 MySQL的三个核心线程InnoDB、MyISAM和Replication在MySQL数据库管理中扮演着非常重要...
关于Mysql中四种常用存储引擎的详细介绍以及如何正确选择
InnoDB的数据文件由表的存储方式决定。(1)共享表空间文件:由参数innodb_data_home_dir和innodb_data_file_path定义,用于存放数据词典和日志等。(2).frm:存放表结构定义。(3).idb:使用多表空间存储方式时,用于存放表数据和索引,若使用共享表空间存储则无此文件。3. 外键约束:InnoDB是MySQL唯一支持外键约束的引擎...
Mysql数据库InnoDB缓冲池(Buffer Pool)
1.InnoDB缓冲池简介 InnoDB在内存中维护一个叫做缓冲池的存储区域来缓存数据和索引。了解InnoDB缓冲区如何工作,如何利用它来在内存中保存被频繁访问的数据,对Mysql调优至关重要。可以通过对InnoDB缓冲的各方面进行配置来改善Mysql的性能。理想情况下,可以将缓冲池设置为实际需要的值,为服务器上运行的其他...
MySQL核心技术卷-索引篇(一) InnoDB 记录行与数据页
MySQL,作为后端开发的必备数据库,其索引是核心技能之一。但要理解索引,首先需了解MySQL如何存储数据。本文将深入探讨InnoDB引擎中数据行与数据页的结构。MySQL的数据存储并非简单的B+树,而是基于数据表的记录行。这些行在磁盘上的存储并非随意,而是有特定的格式和逻辑。以InnoDB的行格式为例,有Compact、...
MySQL引擎解析InnoDBMyISAM和Memory三种引擎的读法比较mysql三种引擎读...
1. 支持事务、行级锁和外键约束等特性,不建议进行频繁的数据删除和更新操作,否则会导致锁表,从而影响其他事务的执行。2. Row Lock是InnoDB锁机制中的一种锁机制,能够实现更细粒度的锁控制,避免了表锁的粗糙性。3. 支持行级索引,可大大提高SQL的执行速度。2. MyISAM 引擎 MyISAM是MySQL中最...
MySQL的表分为两类InnoDB和MyISAM了解它们的区别有助于优化数据库性能my...
InnoDB是最常用的MySQL存储引擎之一,它是一个基于事务的存储引擎。它支持外键和事务处理,并具有ACID(原子性、一致性、隔离性和持久性)属性,这使得它非常适合于高并发、高负载的应用程序。InnoDB的表格支持行级锁定,这使得多个用户可以同时访问同一张表格的数据,从而提高了数据库的并发性。MyISAM则是...