品易云推流 关闭
文章详情页
文章 > MySQL > mysql中如何InnoDB作用和格式是什么?

mysql中如何InnoDB作用和格式是什么?

mysql存储记录

头像

小妮浅浅

2020-12-18 09:39:371579浏览 · 0收藏 · 0评论

 在往期我们提过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两种,小伙伴们都学会了没有~

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图