美文网首页
mysql数据库各存储引擎及区别

mysql数据库各存储引擎及区别

作者: 进击的阿修罗 | 来源:发表于2019-06-13 14:13 被阅读0次

Mysql数据库一共几种存储引擎? 通过查询命令  show engines 可以查看数据库的存储引擎如下图:

图1

可以看到mysql数据库有很多种存储引擎,但是我们平时工作中使用接触到的或者面试被问到的主要有3种:

1.InnoDB  存储引擎

首先 InnoDB存储引擎是mysql数据库的默认存储引擎,也是事务性数据库的首选引擎,支持事务的ACID。InnoDB 的默认隔离级别是RR,使用Next-Key Lock算法避免幻读,达到Serializable隔离级别。什么是RR呢?看下图2,RR也是mysql数据库默认的隔离级别。

图2

InnoDB存储引擎的特点:

1.支持事务。支持事务的四种隔离级别,是一种有commit、rollback和crash recovery capabilities(崩溃修复能力)的事务安全型表。

2.支持行锁和外键约束,支持并发写。

3.支持自动增长列。AUTO_INCREMENT自增长的字段,存储引擎InnoDB中必须包含只有该字段的索引。

4.InnoDB支持共享表空间存储和多表空间存储。使用共享表空间存储时,表结构保存在.frm文件中,数据和索引保存在innodb_data_home_dir和innodb_data_file_path定义的表空间中,可以是多个文件;使用多表空间存储时,数据和索引单独保存在.ibd中。

2.MyISAM 存储引擎

1.不支持事务及外键约束。

2.MyISAM表支持静态表、动态表、压缩表。其中静态表是默认的存储格式,具有存储迅速,易缓存的优点,缺点是占用的空间比动态表多,动态表则占用空间相对较少,但是频繁的更新或删除记录会产生碎片,压缩表占据的磁盘空间非常小,由于每个记录是被单独压缩的,因此访问开支也非常小 。

3、每张使用MyISAM引擎建立的表对应磁盘中的3个文件,文件名和表名相同,扩展名分别为.frm(存储表定义)、.MYD(存储数据)、.MYI(存储索引) 

3.MEMORY  存储引擎

1、不支持事务、不支持外键

2、将数据存储在内存中,访问速度非常快

3、支持HASH和BTREE索引,默认使用hash索引

4、每个memory表只对应一个格式是.frm的磁盘文件

相关文章

  • mysql数据库各存储引擎及区别

    Mysql数据库一共几种存储引擎? 通过查询命令show engines 可以查看数据库的存储引擎如下图: 可以看...

  • MySQL介绍

    mysql介绍 其他数据库介绍 mysql特点 mysql存储引擎类型及特点 关于mysql单表存储 mysql介...

  • 2019-04-24

    mysql常见的数据库引擎和区别: MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用...

  • MySql高级之常见的Join查询(一)

    MySql的存储引擎介绍 : 常用的MySql存储引擎只有两个:MyISAM以及InnoDB。 两个存储引擎的区别...

  • MySQL InnoDB 结构及特性(个人理解)

    MySQL 区别于其他数据库的最为重要的生点就是,插件式的表存储引擎。而在众多存储引擎中,InnoDB 最为常用的...

  • A.001.3.Mysql存储引擎

    1.存储引擎的基本概念 2.MySQL 5.7 支持的存储引擎 3.MySQL数据库中的存储引擎 4.MySQL ...

  • MySQL小记(一):存储引擎

    MySQL存储引擎 MySQL默认支持多种存储引擎,以适用于不同领域的数据库应用。MySQL5.0支持的存储引擎包...

  • 2、MySQL数据库引擎有哪些

    MySQL数据库引擎有哪些 如何查看mysql提供的所有存储引擎: mysql常用引擎包括:MyISAM、...

  • mysql技术内幕学习总结

    一、mysql体系和存储引擎 1、数据库和数据库实例的区别 数据库:存储数据的文件 数据库实例:可以操作数据的程序...

  • MySQL索引背后的数据结构及算法原理

    MySQL索引背后的数据结构及算法原理 MySQL存储引擎InnoDB与Myisam的六大区别

网友评论

      本文标题:mysql数据库各存储引擎及区别

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