zoukankan      html  css  js  c++  java
  • InnoDB:表

    数据在表中是如何进行组织存放的?下面我们就来看看:

    InnoDB引擎表的类型

    InnoDB表都会有一个主键。

    如果没有显示的指定主键,首先会去查找,看是否有非空的唯一索引,

    如果有,则该列为主键;如果没有,那么引擎会自动创建一个6字节大小的指针。

     

    InnoDB逻辑存储结构

    所有的数据都被逻辑的放在一个空间中,称之为表空间。

    表空间由段、区、页组成,页也叫做块。

     

     

    表空间

    对于启用了innodb_file_per_table的数据库,需要注意的是,数据、索引和插入缓冲是放在每张表的单独表空间中的,

    其余像撤销信息、系统事务信息、二次写缓冲等还是放在共享表空间中。所以,共享表空间会不停地增涨。

    表空间由数据段、索引段和回滚段组成。

    段的管理是由引擎来管理的。

    区是由64个连续的页组成,每个页大小16K,则每个区大小为1M。

    InnoDB引擎每次最多可以申请4个区。

    但是,启用了innodb_file_per_table参数之后,默认创建的表大小为96KB。这是为什么呢?

    在每个段开始时,有32个页大小的碎片页来存放数据,之后才去申请64个连续的页。

    页是磁盘管理的最小单位。

    常见的页类型有:

    数据页(B-tree Node)
    Unod页(Undo Log Page)
    系统页(System Page)
    事务数据页(Transaction System Page)
    插入缓冲位图页(Insert Buffer Bitmap)     
    插入缓冲空闲列表页(Insert Buffer Free List)
    未压缩的二进制大对象页(Uncompressed BLOB Page)
    压缩的二进制大对象页(Compressed BLOB Page)

    InnoDB引擎数据按行进行存放,每个页中,最多允许7992行记录。

    InnoDB物理存储机构

    从物理意义上看,InnoDB表由共享表空间、日志文件组、表结构定义文件组成。

    表空间文件以后缀.ibd结尾,表结构定义文件以后缀.frm结尾,任何存储引擎表结构定义文件都是以.frm结尾。

    InnoDB行记录格式

    现在的mysql版本默认的行格式为compact。

    mysql> show table status like 'sala%'G;
    *************************** 1. row ***************************
               Name: salaries
             Engine: InnoDB
            Version: 10
         Row_format: Compact
               Rows: 2838426
     Avg_row_length: 35
        Data_length: 100270080
    Max_data_length: 0
       Index_length: 0
          Data_free: 4194304
     Auto_increment: NULL
        Create_time: 2017-09-13 11:33:14
        Update_time: NULL
         Check_time: NULL
          Collation: latin1_swedish_ci
           Checksum: NULL
     Create_options: 
            Comment: 
    1 row in set (0.00 sec)
  • 相关阅读:
    美女检测器
    汉字动画程序的原理
    值类型不是值类型(ValueType is NOT a Value Type):闲谈.Net类型
    PowerShell 简介
    Visual Studio 2012 RC 发布
    使用 MvcMiniProfiler 监控EF 4.1 with MySQL Provider
    NuGet安装及简单使用
    发布自己的NuGet程序
    Qizmt 单机及分布式部署注意事项
    JDynamic :支持Json反序列化为Dynamic对象
  • 原文地址:https://www.cnblogs.com/leomei91/p/7521881.html
Copyright © 2011-2022 走看看