【MySQL】数据库存储引擎区别

【存储引擎】MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

MySQL的存储引擎是针对表进行设置的,一个库的不同表可以设置不同的存储引擎,MySQL默认支持多种存储引擎,以适用不同领域的数据库应用需要。

主要的几个数据库引擎如下:

  • 1.MyISAM存储引擎
  1.  5.5之前默认的存储引擎
  2. 基于ISAM存储引擎,并对其进行扩展
  3. 不支持事务、不支持外键,表级锁,内存和硬盘空间占用率低
  4. 插入数据快,空间和内存使用比较低,对事务完整性没有要求,以select、insert为主的应用基本上都可以使用这个引擎 
  5. 如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。
  6. 如果应用的完整性、并发性要求比 较低,也可以使用。
  •  2.InnoDB存储引擎
  1.  5.5之后默认的存储引擎,使用最广泛
  2. 支持事务处理,支持外键,行级锁,支持崩溃修复能力和并发控制
  3. 劣势在于写的处理效率相对较低,并且会占用更多的磁盘空间以保留数据和索引
  4. 如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。
  5. 如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
  • 3. MEMORY存储引擎
  1. 所有的数据都在内存中,数据的处理速度快,但是安全性不高
  2. 默认使用HASH索引
  3. 一旦数据库服务重启或关闭,表中的数据就会丢失
  4. 如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY
  • 4. MERGE存储引擎
  1.  MERGE存储引擎是一组MyISAM表组合,这些MyISAM表结构完全相同。
  2. MERGE表本身没有数据
  3. 对MERGE表的CRUD操作都是通过内部的MyISAM表进行的

不同存储引擎,参数:

其中InnoDB 和 MyISAM之间的区别:

  1. InnoDB支持事物,而MyISAM不支持事物
  2. InnoDB支持行级锁,而MyISAM支持表级锁
  3. InnoDB支持MVCC, 而MyISAM不支持
  4. 4InnoDB支持外键,而MyISAM不支持
  5. 5InnoDB不支持全文索引,而MyISAM支持

参考:mysql数据库存储引擎及区别

发布了26 篇原创文章 · 获赞 49 · 访问量 137万+

猜你喜欢

转载自blog.csdn.net/ldghd/article/details/102610281