MySql存储引擎

239 阅读1分钟

*客官今早小二给大家更博了,本文阅读需要4.4分钟,不要为了读文章而读文章(要去思考)。

MyISAM储存引擎

默认MyISAM的表会在磁盘中产生3个文件

  • .frm表结构文件
  • .MYD表数据文件
  • .MYI表索引文件

在创建表的时候可以指定数据文件位置和索引文件位置,只有MyISAM表支持。

  • DATA DIRECORY[=]数据保存的绝对路径
  • DATA DIRCORY[=]索引文件保存的绝对路径

MyISAM表最大支持数据量是2的64次方记录

每个表最多可以建立64个索引

如果是符合索引每一个表最多包含16个列,索引值最大值是1000B

引擎储存格式

定长(FIXD静态)

  • 是指字段中不包含VARCHAR/TEXT/BLOB

动态(DYNAMIC)

  • 只要字段中包含VARCHAR/TEXT/BLOB

压缩(COMPRESSED)

  • myisampack创键

InnoDB存储引擎

  • 设置遵循ACID模型,支持事物具有从服务崩溃中恢复的能力。能够最大限度保护用户数据
  • 支持行级锁,提高用户并读写能力
  • 支持外键,保持数据的完整性和一致性
  • InnoDB拥有自己独立缓冲池,常用的数据和索引都在池中
  • 对于INSERT UPTATE DELETE 操作,InooDB会用一种change buffering的机制来自动优化,还可以提供一致的读,并且可以缓冲更多的数据,减少磁盘I/O,提高性能

创建表后会产生两个文件

  • .frm表结构文件
  • .ibd表的数据和索引存储表空间

所用的表都要创建主键,最好写上AUTO_INCREMENT,也可以放在经常查询的列作为主键