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)
  • 相关阅读:
    百度mp3地址解密码
    VB 在EXE后附加信息
    截屏函数
    Base64和StrToByte
    The Android ION memory allocator, DMABUF is mentioned as well
    DDC EDID 介绍
    Memory management for graphic processors TTM的由来
    科普 写display driver的必看 How video card works [2D的四种主要操作]
    GEM vs TTM
    DMABUF 背景介绍文章 Sharing buffers between devices
  • 原文地址:https://www.cnblogs.com/leomei91/p/7521881.html
Copyright © 2011-2022 走看看