• 技术文章 >数据库 >MySQL

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

    小妮浅浅小妮浅浅2020-12-18 09:39:37原创1914

    在往期我们提过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存储记录
    上一篇:mysql存储表的形式有哪两种? 下一篇:mysql查询缓存是什么意思

    相关文章推荐

    • mysql存储在语句块贴标签• mysql存储中输出参数是什么• inout在mysql存储中怎么用• mysql存储引擎MyISAM怎么用• mysql中Memory适用范围是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网