zoukankan      html  css  js  c++  java
  • 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会下降,影响现有的线上业务,

    不建议使用。

  • 相关阅读:
    万豪项目总结
    解决jquery animate({scrollTop$pos},500)与$(window).scroll方法冲突的问题
    一波水文来袭-让我们一起谈谈闭包【原创】
    JS模块化规范AMD之RequireJS
    JS模块化规范CMD之SeaJS
    邂逅Sass和Compass之Compass篇
    邂逅Sass和Compass之Sass篇
    idea 修改SVN账户信息
    idea 创建/加载 maven项目速度较慢
    gitlab新建分支,idea中无法找到
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10717256.html
Copyright © 2011-2022 走看看