• 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会下降,影响现有的线上业务,

    不建议使用。

  • 相关阅读:
    【SCOI 2011】 糖果
    【POJ 3159】 Candies
    【POJ 1716】 Integer Intervals
    【POJ 2983】 Is the information reliable?
    【POJ 1364】 King
    【POJ 1201】 Intervals
    【POJ 1804】 Brainman
    6月10日省中提高组题解
    【POJ 3352】 Road Construction
    【POJ 1144】 Network
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10717256.html
Copyright © 2020-2023  润新知