Mysql的存储引擎

2020-08-24  本文已影响0人  倚仗听江

1. MyISAM

  1. MyISAM是Mysql5.5以前默认的存储引擎

  2. 具有独立的索引文件,所以查询的性能比较高

  3. MyISAM的存储文件有三个,后缀名分别是.frm(存储表结构,每个存储引擎都有),MYD(数据文件),MYI(索引文件)


    MyISAM 的存储文件.png
  4. 不支持事务,不支持外键

  5. 支持全文检索,支持数据压缩(myisampack -b -f testmysam.MYI)

适用场景:

2. Innodb

  1. Innodb是Mysql5.5及以后默认的存储引擎
  2. 支持事务和外键
  3. Innodb的存储文件有两个,后缀名分别是.frm、.ibd(数据文件)。
  4. Innodb还有独立表空间和系统表空间之分,在Mysql5.6以前默认使用的是系统表空间,后缀名为.ibdataX(与之对应的还有独立表空间.ibd)。系统表空间因为只有一个文件,因此会产生IO的瓶颈,而独立表空间就可以同时向多个文件刷新数据了。
    系统表空间还无法简单的收缩文件,独立表空间可以通过optimize来收缩文件。所以,推荐使用独立表空间。

适用场景:

3. Memory

  1. 具有文件存储引擎的特点,数据是保存在内存中的,也被称为HEAP存储引擎,Mysql重启数据全部丢失。
  2. 支持hash索引和btree(其实就是B+树)索引
  3. 所有字段都是固定长度varchar(10) = char(10)
  4. 不支持BloB和Text等大字段
  5. 使用的是表级锁


    Memory存储引擎表.png

4. Ferderated

  1. 提供了访问远程MYSQL服务器上表的方法
  2. 本地不存储数据,数据全部放到远程服务器上
  3. 本地需要保存表结构和远程服务器的连接信息
  4. 使用场景:偶尔的统计分析和手工查询(某些游戏行业)

5. CSV

  1. CSV的存储文件有三个,后缀名分别是.frm,.csv,.csm,其中.frm是表的定义文件,.csv是文件数据存储内容,.csm是存储表的元数据如表状态和数据量
  2. 数据以文本方式存储在文件
  3. 适合做为数据交换的中间表、财务系统
上一篇下一篇

猜你喜欢

热点阅读