常见数据库引擎比较

时间:2022-04-26 08:01:34

面试官经常问到有关数据库的问题,多数可能就是基于MySQL数据库的这几种引擎。

简介概括主要:

1. 总结:一般来说不使用事务的话,请使用MyISAM引擎,使用事务的话,一般使用InnoDB。

 

2. 比较常用的数据库引擎3种:

  • MYISAM:支持3中存储方式:静态型,动态型,压缩型
  1. 优点:占用的空间小,存储的速度快
  2. 缺点:不支持事务并发
  3. 使用场景:数据表主要做修改查询操作
  • innoDB:
  1. 优点:提供事务的支持,回滚,崩溃修复佛如能力,多版本事务并发控制
  2. 缺点:读写效率较差,占用的数据库空间较大
  3. 使用场景:MySQL主要引擎
  • Memory:内存中对数据创建表,数据全部存储在内存
  1. 缺点:生命周期短
  2. 优点:读写速度非常快,对数据的安全性要求比较低的时候可以选择memory
  3. 使用场景:MySQL中使用该引擎作为临时表

常见数据库引擎比较

 

 常见数据库引擎比较

 

 

 

3.以下是长篇大论,有兴趣的可以看一下。

  • InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
  • MYISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。
  • Memory:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

4.市场上部分引擎(比主流差一丢丢)

  1. ·MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。
  2. · InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。(提供行级锁)
  3. · BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。
  4. · Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。
  5. · Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。
  6. · Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。
  7. · Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。
  8. · Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。
  9. · Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。