zoukankan      html  css  js  c++  java
  • InnoDB的行格式

      一直对InnoDB的行格式不太了解,于是找了几篇文章看了一下,总结一下

    什么是行格式

      我们平时以记录为单位向表中插入数据,这些记录在磁盘上的存放方式被称为「行格式」或「记录格式」。

      行格式的应用是针对于表的,只有创建表的时候使用行格式,在创建库或插入数据的时候无法选择行格式。

      表的行格式决定了这张表下面的物理存储方式,会影响查询和DML操作的性能。

    InnoDB的行格式分成以下4种

    • Compact(行格式)
      • 比Redundant格式存储空间减少20%,查询速度更快。 
      • 如果存在大量运算,可能会比Redundant慢。
      • 使用这种格式的页,前768字节的变长列值存在B树索引记录中,其余的字段被存储在溢出页上。
      • 列值小于等于768字节,不使用溢出页,完全存储在B树索引中,节省IO。 
    • Redundant(冗余行格式)
      • 把前768字节的变长列值存在B树节点的索引记录中,多余的字节从会被存在溢出页,如果小于768字节,则列值在B树中,节省了IO操作。  
      • 对于一些列类型为blob的较短值友好。
    • Dynamic(动态行格式)
      • 跟compact相同的行存储方式
      • 长可变列
      • 更大的索引键前缀的存储能力
      • 支持索引键前缀3072字节。  
    • Compressed(压缩行格式)
      • 与Dynamic行格式相同的存储特性和功能,在这个基础上添加了对标和索引数的支持。
      • 需要启用Innodb_file_per_table

     各个行格式的优缺点:

    行格式 紧凑的存储特性 增强的可变长度色谱柱存储 大索引键前缀支持 压缩支持 支持的表空间类型
    Redundant 系统,每表文件,常规
    Compact 系统,每表文件,常规
    Dynamic 系统,每表文件,常规
    Compressed 每表档案,一般

    参考:https://mp.weixin.qq.com/s/fgpk-DRqrAma5lauNxT6WQ、https://mp.weixin.qq.com/s/8Ma5BjQuDQrxWVtgvqS4UQ、https://blog.csdn.net/fhdsece/article/details/104974697

  • 相关阅读:
    第三章-套接字编程
    unix网络编程第四章----基于TCP套接字编程
    unix网络编程第一章demo
    unix网络编程第2章
    论epoll的实现
    Select函数实现
    函数式编程语言
    Git
    python库-urllib
    PIL处理图片信息
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14575533.html
Copyright © 2011-2022 走看看