欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL MyISAM默认存储引擎实现原理

程序员文章站 2022-05-15 23:41:39
默认myisam的表会在磁盘中产生3个文件:.frm(表结构文件)、.myd(数据文件)、.myi(索引文件)  可以在创建的时候指定数据文件和索引文件的存储位置,只有myisam表支持:     ...

默认myisam的表会在磁盘中产生3个文件:.frm(表结构文件)、.myd(数据文件)、.myi(索引文件)

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

  •     data directory [=] 数据保存的绝对路径
  •     index directory [=] 索引文件的绝对路径

  myisam单表最大支持的数据量为2的64次方跳记录  

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

  如果是复合索引,每个复合索引最多包含16个列,索引值最大长度是1000b

  myisam引擎的存储格式:

  •     定长(fixed 静态) :是指字段不包含varchar/text/blob
  •     动态(dynamic) :只要字段中包含了varchar/text/blob
  •     压缩(compressed):muisampack创建

innodb存储引擎:

  设计遵循acid模型,支持事务,具有从服务崩溃中恢复的能力,能够最大限度保护用户的数据

  支持行级锁,可以提升多用户并发时的读写性能

  innodb拥有自己独立的缓冲池,常用的数据和索引都在缓存中

  对于insert、update、delete操作,innodb会使用一种change buffering的机制来自动优化,还可以提供一致性的读,并且还能够缓存变更的数据,减少磁盘i/o,提高性能

  创建innodb表之后会产生两个文件:

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

  所有的表都需要创建主键,最好是配合上auto_increment,也可以放到经常查询的列作为主键

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。