mysql常用存储引擎有哪些

哦,是的,MySQL 有几个引擎,所以你必须在它们之间进行选择。
刚开始做的时候,我很困惑,不知道哪个更好。
2 02 2 年,为新公司项目选择引擎将是一件令人头疼的事情。

InnoDB,这个是主流,基本上新项目都默认使用它。
为什么?很多功能。
支持事务,ACID,想一想,像转账这样的操作,需要保证数据正确。
行级闭包。
当并发性较高时,逐行锁定会减少冲突并加快写入速度。
外键约束 相关表之间的数据不能混合,此约束是必需的。
崩溃恢复,系统再次关闭,数据不能丢失,是通过重做日志和撤消日志来完成的。
多版本并发控制,MVCC,读写互不干扰,并发性能高。

适合什么场景?竞争高,数据一定是正规的、OLTP类型的,比如电商、金融、社交媒体,这些地方是密不可分的。
优势?交易支持和可靠的数据操作。
行级锁,并发写入速度快。
外键约束确保数据完整性。
崩溃恢复,不丢失数据。
MVCC,读写都是非阻塞的。

MyISAM,这个是老古董了,基本不再使用了。
读取速度很快,但是使用表级锁定时,整个表都被锁定。
当高并发写入时,性能立即下降。
没有事务,数据一致性必须由应用层自己负责。
没有外键,维护数据完整性非常困难。
到2 02 2 年,估计新项目很少会选择它作为默认。

内存,这里的数据存储在内存中。
它速度快但不稳定。
一旦服务重新启动,所有数据都将丢失。
它是做什么用的?临时表,缓存数据,需要快速读写并且可能丢失的东西,例如用户会话信息,以及复杂查询的临时表。
但数据量不能太大,因为受内存限制。
表级块也会影响并发性。

存档,这个压缩比很高。
它只能输入数据和检查数据,不能更改或删除数据。
它是做什么用的?日志归档、历史数据存储、审计数据等。
但除主键外,不支持其他索引。
检查数据需要全表扫描,效率低下。

CSV,这将数据保存在CSV文件中,从而更容易与外部系统交换数据。
它是做什么用的?数据导入和导出,处理无法连接数据库但可以处理CSV文件的系统。
但没有索引,性能较差,不适合商务办公桌。

黑洞,这个不存储任何东西,它只接受写操作。
它是做什么用的?主从复制中的“黑洞”服务器用于转发数据。
要么测试SQL语法,要么进行数据验证、性能测试等。
但是数据根本查不到,只是一个引擎工具。

所以引擎的选择取决于业务的需求。
默认使用InnoDB,可以满足大多数现代应用程序。
如果应用程序对事务性要求特别高,比如金融交易,InnoDB是唯一的选择。
如果应用主要读取静态数据,一致性要求不高,MyISAM或Archive可以节省一些资源,但要小心。
写并发高,InnoDB很棒,MyISAM写不了。

注意数据完整性并寻找外键。
InnoDB是唯一的选择。
性能测试和关键业务场景应该在实践中进行检验,而不仅仅是基于理论。
有一个误会。
不要盲目追求速度。
MyISAM读快写慢,内存快,但数据丢失。
不要忽略事务和数据完整性并将其推送到应用程序层。
代码会比较复杂,维护成本高,而且容易出错。
我们需要知道内存数据的波动性。
我在2 02 2 年看到过一个案例,临时关键数据被放置在Memory表中。
重启后,数据消失,业务彻底中断。
请勿不当混合发动机。
InnoDB主表和对应的MyISAM表会导致外键不生效,事务数据不一致。
尽管允许混合,但对于强链接表来说是不允许的。

Mysql数据库存储引擎有哪些?

有哪些mysql引擎

索引数据库: 默认引擎。

支持事务和行级锁定。

MVCC,高级阅读和写作。

外键约束、崩溃恢复、列自动增长。

聚集索引,缓冲池。

适用于电子商务和网上支付。
平衡的读写性能。

梅索姆:-
表级锁定。

读快,写慢。
没有事务,也没有外键。

崩溃恢复很差。

空间小,索引快。

适合博客和新闻。

全表扫描速度快且依赖于备份。
内存:
内存存储,读写速度快。

没有坚持。
没有交易和复杂的索引。

临时表,缓存适用。

零磁盘 I/O,有限内存。
存档:
紧凑的存储。

高压缩比,冷数据。
没有索引和交易。

强制实施日志和审计。

压缩比大于1 0:1
CSV:
文本格式。

跨平台兼容。
没有索引和交易。

进出口适用。

Excel直接分析。
其他:
黑洞:不存储数据。

联邦:访问距离表。

NDB:集群存储。

特殊情况少用。

根据需要选择引擎。