zoukankan      html  css  js  c++  java
  • mysiam,innodb

    常用的主要分为两种,一种是innodb,一种是myisam,两者的主要区别是

    ①myisam不支持事务处理,而innoDB支持事务处理

    ②myisam 不支持外键,innoDB支持外键

    ③myisam支持全文检索,而innoDB在MySQL5.6版本之后才支持全文检索

    ④数据的存储形式不一样,mysiam表存放在三个文件:结构、索引、数据,innoDB存储把结构存储为一个文件,索引和数据存储为一个文件

    ⑤myisam在查询和增加数据性能更优于innoDB,innoDB在批量删除方面性能较高。

    ⑥myisam支持表锁,而innoDB支持行锁

    innnodb

    InnoDB采取的⽅式是:将数据划分为若⼲个⻚,以⻚作为磁盘和内存之间交互的基本单位,InnoDB中⻚的⼤⼩⼀般为 16 KB。也就是在⼀般情况下,⼀次最少从磁盘中读取16KB的内容到内存中,⼀次最少把内存中的16KB内容刷新到磁盘中。
    我们平时是以记录为单位来向表中插⼊数据的,这些记录在磁盘上的存放⽅式也被称为⾏格式或者记录格式。设计InnoDB存储引擎的⼤叔们到现在为⽌设计了4种不同类型的⾏格式,分别是Compact、Redundant、Dynamic和Compressed⾏格式,随着时间的推移,他们可能会设计出更多的⾏格式,但是不管怎么变,在原理上⼤体都是相同的。例子:
    CREATE TABLE 表名 (列的信息) ROW_FORMAT=⾏格式名称
    ⼀个InnoDB数据⻚的存储空间⼤致被划分成了7个部分,有的部分占⽤的字节数是确定的,有的部分占⽤的字节数是不确定的。
    compact:⼀条完整的记录其实可以被分为记录的额外 信息和记录的真实数据两⼤部分。
    是服务器为了描述这条记录⽽不得不额外添加的⼀些信 息,这些额外信息分为3类,分别是变⻓字段⻓度列表、NULL值列表 和记录头信息
    在Compact⾏格式中,把所有变⻓字段的真实数据占⽤的字节⻓度 都存放在记录的开头部位,从⽽形成⼀个变⻓字段⻓度列表,各变⻓ 字段数据占⽤的字节数按照列的顺序逆序存放,我们再次强调⼀遍, 是逆序存放
    名称     中⽂名   占⽤空间 ⼤⼩   简单描述
    File Header ⽂件头部   38字节    ⻚的⼀些通⽤信息
    Page Header ⻚⾯头部   56字节     数据⻚专有的⼀些信息
    Infimum + Supremum 最⼩记录和最⼤ 记录 26字节 两个虚拟的⾏记录
    User Records ⽤户记录 不确定 实际存储的⾏记录内容
    Free Space 空闲空间 不确定 ⻚中尚未使⽤的空间
    Page Directory ⻚⾯⽬录 不确定 ⻚中的某些记录的相对位置
    File Trailer ⽂件尾部 8字节 校验⻚是否完整
  • 相关阅读:
    解决servlet在web.xml中的路径跳转问题
    浅谈上市公司期权
    spring 与mybatis 整合总结
    学习ssm心得
    django中ORM的事务操作
    Celery快速入门
    vagrant 使用指南
    数据库之mysql
    python之pip
    linux基础
  • 原文地址:https://www.cnblogs.com/hanmengya/p/10773107.html
Copyright © 2011-2022 走看看