网站域名备案认证,网银网站模板,wordpress tag静态,什么网站做电子元器件引言
MySQL是一种流行的关系型数据库管理系统#xff08;RDBMS#xff09;#xff0c;它支持多种不同的数据库引擎。数据库引擎是用于存储、管理和检索数据的核心组件#xff0c;它们直接影响着数据库的性能、可靠性和功能#xff0c;接下来本文介绍下一些常见的MySQL数据…引言
MySQL是一种流行的关系型数据库管理系统RDBMS它支持多种不同的数据库引擎。数据库引擎是用于存储、管理和检索数据的核心组件它们直接影响着数据库的性能、可靠性和功能接下来本文介绍下一些常见的MySQL数据库引擎。
存储引擎
InnoDB引擎
InnoDB 是MySQL默认的事务性数据库引擎底层存储结构为B树 B树的每个节点对应innodb的一个page page大小是固定的一般设为 16k。其中非叶子节点只有键值叶子节点包含完成数据。 适用场景
经常更新的表适合处理多重并发的更新请求。支持事务。可以从灾难中恢复通过 bin-log 日志等。外键约束。只有他支持外键。支持自动增加列属性 auto_increment。
MyISAM引擎
MyIASM 没有提供对数据库事务的支持也不支持行级锁和外键 因此当 INSERT(插入)或 UPDATE(更新)数据时即写操作需要锁定整个表效率会低一些。
MyIASM 执行读取操作的速度很快而且不占用大量的内存和存储资源。在设计之初就预想数据组织成有固定长度的记录按顺序存储的。 适用场景
不支持事务。它对于读密集型应用程序具有较好的性能。它适用于只读或很少更新的应用程序例如博客、新闻网站等。
Memory引擎
Memory也叫 HEAP堆内存使用存在内存中的内容来创建表每个 MEMORY 表实际对应一个磁盘文件。MEMORY 类型的表访问非常得快因为它的数据是放在内存中的并且默认使用 HASH 索引。但是一旦服务关闭表中的数据就会丢失掉。Memory 同时支持散列索引和 B 树索引 B树索引可以使用部分查询和通配查询也可以使用,和等操作符方便数据挖掘散列索引相等的比较快但是对于范围的比较慢很多。 特点
Memory引擎将表存储在内存中提供了非常高的读写性能。Memory引擎不支持事务并且在数据库重启时会丢失数据。它适用于需要快速读写操作的临时数据或缓存。
TokuDB
TokuDB 底层存储结构为 Fractal Tree,Fractal Tree 的结构与 B树有些类似, 在 Fractal Tree 中 每一个 child 指针除了需要指向一个 child 节点外还会带有一个 Message Buffer 这个Message Buffer 是一个 FIFO 的队列用来缓存更新操作。
例如一次插入操作只需要落在某节点的 Message Buffer 就可以马上返回了并不需要搜索到叶 子节点。这些缓存的更新会在查询时或后台异步合并应用到对应的节点中。 TokuDB 在线添加索引不影响读写操作, 非常快的写入性能 Fractal-tree 在事务实现上有优势。他主要适用于访问频率不高的数据或历史数据归档。
Archive引擎
Archive引擎专门用于存储和归档大量历史数据。它采用高度压缩的存储格式在存储空间和性能之间取得了平衡。Archive引擎适用于只需偶尔查询的大型历史数据集。
结论
除了以上几个引擎MySQL还支持其他一些引擎如CSV引擎、Blackhole引擎等。每个引擎都有其适用的场景和优化策略选择合适的引擎对于应用程序的性能和可靠性至关重要。