• Mysql 行存储的文件格式


    一、Mysql行存储的文件格式概述

    InnoDB存储引擎有两种文件格式

    Antelope:compact与redundant两种行记录格式

    Barracuda:compress与dynamic两种行记录格式

    查看表的行记录格式:

    show table status like '%sys_appinfo%'G;

    查看数据库默认的行记录格式:

    show variables like '%row_format%';

    文件格式查看方式:

    show variables like 'innodb_file%';('innodb_file)

    二、四种行记录格式的不同

    MySQL5.7默认使用Barracuda文件格式与dynamic行记录格式。

    compact是目前使用最多的一种,而dynamic时新版本默认的行记录格式。

    在生产中,我们应该选择哪种行记录格式?

    这要说明行溢出:行溢出简单来讲就是需要存储的数据在当前页面之外,拆分到多个页进行存储。

    针对大数据类型text或者blob存储在其字段中的数据,dynamic实际采用的数据都存放在溢出的

    页中(off-page),而数据页只存储前20个字节指针。在compact行格式下,溢出的列只存放768个

    前缀字节。dynamic这种行格式模式,针对溢出列所在的新页利用率更高。所以,目前生产环境

    中建议尽量使用dynamic这种行格式模式,针对溢出列所在的新页利用率更高。

    redundant是最早的行记录格式,相比compact要消耗更多的存储空间,不建议使用。

    compressed是压缩格式,是对数据和索引进行压缩。但只是针对物理存储层面上的压缩,而在

    内存中是不压缩的。当数据调用到内存中就涉及到转换,会很消耗CPU资源,而且效率很低。

    压缩比不高,大概直接进1/2的比例。压缩带来负面影响大,数据库TPS会下降,影响现有的线上业务,

    不建议使用。

  • 相关阅读:
    mysql在第一次查询的时候很慢,第二次查询就比较快的原因?
    mysql的递归(使用函数)
    什么样的男人才是女人眼中最帅的男人
    面试题总结
    java的重载总结
    arduino读取GPIO数据
    electron+react项目改为typescript
    百度AI训练营笔记
    python读取文件出现ufeff问题
    大端小端
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10717256.html
Copyright © 2020-2023  润新知