常见数据库引擎比较

面试官经常问到有关数据库的问题,多数可能就是基于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引擎(可为快速创建定制的插件式存储引擎提供帮助)。

原文地址:https://www.cnblogs.com/yblackd/p/12019818.html

时间: 2024-11-09 01:01:45

常见数据库引擎比较的相关文章

MySQL常见数据库引擎及对比

一:MySQL存储引擎简介 MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BLACKHOLE. MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:  MyISAM管理非事务表.它提供高速存储和检索,以及全文搜索能力.MyISAM在所有MyS

MySQL数据库常见存储引擎(一)

熟悉mysql数据库的朋友,肯定会喜欢mysql强大的插件式存储引擎,能够支持太多存储引擎,当目前的存储引擎不能满足你的需求时,你可以根据自己的需求选择合适的引擎,将相关的文件拷贝到相关路径,甚至不需要重启数据库,就可以使用.真的很强大. 1 常见存储引擎memory存储引擎  硬盘上存储表结构信息,格式为.frm,数据存储在内存中    不支持blob text等格式    创建表结构,    支持表锁    支持B树索引和哈希索引    支持数据缓存 数据 缓存    插入速度快    分配

数据库引擎开发以及常见数据库内部原理学习(1)

数据库引擎开发 学习王涛老师的数据库引擎课程已经是很久之前的事情了,限于当时自身的能力,特别是对数据库的理解方面的欠缺,当时可以说是囫囵吞般的学习,尽管如此,当时学习的收获依旧非常之大,而时至今日,自认为自身对数据库的理解更上一层楼,也因为相对复杂多变的现代数据库,这个数据库模型相对于其他数据库来说简单得多,所以重新翻出来,再次学习,试图在源码层面理清楚各种数据库的架构! 因为是笔记类型的博文,所以会不断更新. 线索 数据库发展 关系型数据库理论 NoSQL数据库的介绍 1.记录: 谈谈数据库的

代码配置都没问题,为什么事务不回滚(了解Mysql数据库引擎)

前几天开发中遇到了一个问题,在进行调试的过程中发现配置在service层的事务不起作用,抛出异常后数据库的更新还是成功了,事务并没有回滚,然后就开始各种检查,查看spring的事务是否配置正确,进入更新方法时是否开启了事务,经过检查之后发现一切都正常,那为什么事务不回滚呢?问题出在了一个很难会去考虑的地方(数据库里创建的表不支持事务). Mysql数据库默认的创建表的引擎是:MYISAM,使用这种引擎的表效率高,但是不支持事务,所以我们在建表时最好是根据需求手动去指定我们需要的引擎,下面是一个能

连接sql sever2008数据库出现了无法连接到数据库引擎问题解决

出现的问题: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (Microsoft SQL Server,错误: 2) 原因: MSSQLSERVER(微软数据库服务器)还没打开,所以进入不了,因此出现了未找到或无法访问服务器,解决就是打开微软服务器 解决方案: 开

常见数据库的优化方式

? 目录 一.常见数据库的优化方式:????1 二.提高效率,反三范式:????1 第一范式:????1 第二范式:????1 第三范式:????1 反三范式设计:????2 三.定位慢查询.????3 四.索引的讲解:????6 五.explain工具的讲解????9 六.索引应用讲解:????10 七.并发处理的锁机制:????16 八.分表技术????17 九.分区技术????18 10.其他调优:????20 ? ? 一.常见数据库的优化方式: 我们之前讲的静态化,memcache主要是

(转) mysql数据库引擎:MyISAM和InnoDB(性能优化)

转自 http://yuwensan126.iteye.com/blog/1138022 Mysql 数据库中,最常用的两种引擎是innordb和myisam.Innordb的功能要比myiasm强大很多,但是innordb的性能要比myisam差很多,如果你的网站只是做简单的查询,更新,删除,那么用myiasm是最好的选择. 所有的性能测试在:Micrisoft window xp sp2 , Intel(R) Pentinum(R) M processor 1.6oGHz 1G 内存的电脑上

代码配置没有问题,为什么不回滚事务(要理解Mysql数据库引擎)

在发展的前几天遇到的问题,在调试过程中发现配置service本次交易不工作层,更新后数据库抛出异常或成功,交易不会回滚.随后开始了各种检查,视图spring的事务是否配置正确,进入更新方法时是否开启了事务.经过检查之后发现一切都正常,那为什么事务不回滚呢?问题出在了一个非常难会去考虑的地方(数据库里创建的表不支持事务). Mysql数据库默认的创建表的引擎是:MYISAM,使用这样的引擎的表效率高.可是不支持事务,所以我们在建表时最好是依据需求手动去指定我们须要的引擎,以下是一个可以支持事务的建

MySQL数据库引擎、事务隔离级别、锁

MySQL数据库引擎.事务隔离级别.锁 数据库引擎InnoDB和MyISAM有什么区别 大体区别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是性能,其执行效率比InnoDB类型更快,但是不支持事务,而InnoDB提供事务支持以及外键等高级数据库功能. 具体实现的区别: InnoDB不支持FULLTEXT类型的索引 InnoDB中不保存表的具体行数,也就是说,执行查询SQL时,InnoDB要扫描一遍整个表来计算有多少行,而MyISAM只要简单的