MySQL中的数据用各种不同的技术存储在文件(或内存)中。在MySQL架构原理之体系架构 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中可以看到其在MySQL中的第3层。
官方提供的存储引擎有:InnoDB/MyISAM等;第三方存储引擎中比较有名的有:TokuDB/XtraDB等。其中,最常见的两种存储引擎是MyISAM和InnoDB。通过show engines命令可以参考当前使用数据库支持的存储引擎。
关于InnoDB可以参考MySQL架构原理之存储引擎InnoDB存储结构 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com),本文主要介绍另一种常用的存储引擎MyISAM。
MyISAM存储引擎管理非事务表,提供高速缓存和减少,以及全文搜索能力。其存储组成如下:
每个MyISAM在磁盘上存储成3个文件。每个文件的名字就是表的名字,文件名与表名相同,扩展名指出了文件类型。需要注意的事,其不缓存数据文件,仅缓存索引文件,具体如下:
1、表定义的扩展名为.frm(frame,存储表定义)。
2、数据文件的扩展名.MYD(MYData,存储数据)。
3、索引文件的扩展名是.MYI(MYIndex,存储索引)。
数据文件和索引文件可以放置在不同的目录,平均分布I/O以获得更快的速度。同时其索引时压缩的,能加载更多索引——这样内存使用率就相应提供不少也节约了一些磁盘空间。
标签:存储,索引,引擎,InnoDB,MyISAM,MySQL From: https://www.cnblogs.com/ilovebath/p/16710958.html