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

  • 相关阅读:
    模拟打车
    atm转账
    python字符串,列表,字典,集合的常用方法
    while和for的简单使用
    数据库的基本命令
    jmeter监控linux的性能
    jmeter的错误解决Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
    jmeter的正则参数化
    jmeter的参数化关联
    使用Python解析JSON
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14575533.html
Copyright © 2011-2022 走看看