美文网首页
Mysql的存储引擎

Mysql的存储引擎

作者: 倚仗听江 | 来源:发表于2020-08-24 10:04 被阅读0次

    1. MyISAM

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

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

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


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

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

    适用场景:

    • 非事务型应用(报表系统、日志系统)
    • 空间类应用(GIS,MyISAM是有空间函数、坐标等)

    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. 适合做为数据交换的中间表、财务系统

    相关文章

      网友评论

          本文标题:Mysql的存储引擎

          本文链接:https://www.haomeiwen.com/subject/hrubjktx.html