有哪些不同的MySQL数据库引擎?

数据库引擎是mysql组件,可以处理sql操作,例如从数据库创建、读取和更新数据。mysql中有两种类型的引擎:事务性和非事务性。
1、事务型数据库:在这种类型中,如果数据库不完整,我们可以回滚对数据库的写入操作。这些操作称为事务。主要是,现代引擎是事务性的。
2、非事务数据库:与事务数据库不同,它们不提供回滚/提交。相反,我们需要手动编写代码来执行回滚操作。
在本文中,我们将了解innodb、myisam、memory、merge、csv和sequence引擎及其特性,以及它们的优缺点。
一、innodb:innodb是dbms mysql和mariadb的存储引擎。它是mysql 5.5及更高版本的默认存储引擎。它取代了myisam作为默认引擎。
特征:
1、它提供标准的符合acid的事务功能,以及外键支持。oracle建议将innodb用于表。
2、它支持多版本并发控制、崩溃恢复和回滚操作。由于行级锁定,多用户性能成为可能。
3、它也用于mariadb服务器。为了维护数据的完整性和安全性,innodb支持外键约束。
4、innodb支持缓存数据和索引的缓冲区。
5、它提供了一种表锁定方法,这意味着一次只有一个用户可以更改表。
优点:
1、支持acid(原子性、一致性、隔离性和持久性)属性以保护用户数据。
2、通过oracle风格的高性能和一致读取访问多个用户。
3、支持使用有助于一致更新、插入和删除操作的外键。此外,它有助于维护数据库表内容的完整性。
缺点:
1、不支持全文搜索。
2、如果性能是优先考虑的,那么它就不会被使用,因为它比myisam 慢。
3、外键关系的使用使其使用起来很复杂。
二、myisam:是mysql dbms 5.5之前版本的默认引擎。myisam是一个高速存储和检索的存储引擎。它不支持交易。它很容易在系统之间复制,并且数据占用空间小。主要用于web和数据仓库。
特征:
1、myisam存储在3个文件中:.frm–存储表格式,.myd–数据文件,.myi–索引文件。
2、它支持三种存储格式:固定、动态和压缩。
3、最大密钥长度为1000字节。
4、每个表的最大索引数和每个索引的列数分别为64和16。
优点:
1、myisam比其他引擎更简单。
2、它比任何其他通用数据库引擎都快,它还提供全文搜索
缺点:
1、它很容易导致表损坏。但是,我们可以使用repair table查询来恢复它。
2、它不支持外键约束或事务。
三、csv:用于在文本文件中存储csv格式。它总是被编译到mysql 服务器中。它重量轻,可以很容易地导入到电子表格程序中。
特征:
1、csv表使用csv格式。因此,它可用于数据交换,例如,使用电子表格。
2、即使mysql服务器已关闭,也可以使用标准文件编辑器编辑数据
3、mysql服务器海量数据的瞬时加载。
优点:
1、在创建csv文件后,将创建图元文件来存储表的状态和表中存在的行数。
2、数据使用通用分隔值格式存储在文本文件中。
缺点:
1、csv引擎不支持索引。
2、它不支持分区。
3、它必须在所有列上都具有not null属性。
四、merge:使用merge引擎创建的表用于轻松处理大量数据。它是一组相同的myisam表,可以作为一个表使用。因此,它也被称为 mrg_myisam引擎,它适用于数据仓库环境。
特征:
1、它是在mysql 3.23.25 版本中引入的。
2、union 和insert_method是merge表的两个独特功能。
3、merge表没有primary key或unique索引,因为它们不能对所有表强制执行唯一性。
优点:
1、它是一组相同的myisam表,可以用作一个表。记忆因此得以保存。
2、它可以对单个表执行最有效的修复,而不是修复通过合并这些单个表而形成的单个大表。
3、与myisam表不同,合并表不受操作系统文件大小的限制。
缺点:
1、只有相同的myisam表才能用于合并。
2、如果merge表是非临时的,则合并表必须是非临时的。如果 merge表是临时的,myisam表可以是临时表和非临时表的混合。
3、某些myisam功能在merge表中不可用。
五、memory:它被认为是通常用于在内存中创建临时表(也称为 heap)的最快引擎。因此,当数据库重新启动时,数据会丢失。它是非事务性的。它对于快速查找参考资料和其他识别数据很有用。它将所有数据存储在ram中以便更快地访问,而不是将数据存储在磁盘中。它广泛用于表中数据的只读缓存或临时使用。
特征:
1、它不会在磁盘上创建任何文件。
2、memory表不能包含blob或text列。
3、支持auto_increment列。
4、varchar使用固定长度存储,即它使用固定长度的行存储格式。
优点:
1、数据被加密,通过加密功能在服务器中实现。
2、支持b树索引。
3、为客户端之间的低争用提供低级锁定和多线程操作。
缺点:
1、memory表不能分区。
2、如果从memory表中删除单个行,则无法回收内存。
六、sequence:它是用于创建具有给定初始值、结束值和增量值的正整数的升序或降序序列的事务引擎。它是只读的并且支持xa。
特征:
与 memory 数据库引擎一样,它不会在磁盘上创建任何文件。
它会在我们需要时自动创建虚拟表。无法显式创建 sequence 表。
该引擎对连接和子查询很有用。
优点:
1、sequence引擎未绑定到表。因此,我们也可以将它们用于任何其他目的。
2表格实施的灵活性。
缺点:
1、auto_increment 功能需要额外编程,默认情况下在引擎中不可用。
2、多个并行会话处于活动状态时出现并发问题。
以上是mysql数据库引擎不同类型的介绍,希望能帮助到大家参考!


Aeva发布首款FMCW芯片激光雷达,助力自动驾驶发展
全球最大的生物识别数据系统正在「杀死」印度穷人
额温枪为什么能测量温度工作原理详细介绍
飞思卡尔将在北京展示 嵌入式LINUX的产品
高速放大器测试需要足够多的数学知识来正确使用巴伦
有哪些不同的MySQL数据库引擎?
马斯克本周将访华 这是马斯克3年来首次访问中国
高通骁龙875芯片将会首次引入Cortex-X1超大核心?
Diodes推出ZXCT11xx低功率高端电流监控器
功率放大器的性能指标有哪些?
云塔科技自研5G毫米波滤波器推出,为6G低轨宽带卫星互联网提供应用
Linux内核反向映射基础知识详解
泛在电力物联网的建设关键点在哪里
想打赢MCU市场的争夺战 首先要最大化满足客户需求
华为创始人任正非表示与美国公司合作将会采取谨慎的态度向前发展
涂鸦智能推进AIoT行业生态的迅速壮大,实现环环相扣的价值增迁
PLC输入输出的连接方式
在Vulkan-hpp中有助于将错误转移到编译时的特性
VR技术助力养元饮品,实现在线工厂VR体验
听说住携住智慧客房,用smart魔方,幸福来得特别快!