MySQL中MyISAM默认存储引擎的实现原理是什么

这篇文章将为大家详细讲解有关MySQL中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,也可以放到经常查询的列作为主键

关于“MySQL中MyISAM默认存储引擎的实现原理是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


网站标题:MySQL中MyISAM默认存储引擎的实现原理是什么
文章路径:http://pwwzsj.com/article/iicoci.html