MySQL 存储引擎全攻略:选择最适合你的数据库引擎

发布时间:2024年01月10日

1. MySQL的支持的存储引擎有哪些

官方文档给出的有以下几种:
在这里插入图片描述
我们也可以通过SHOW ENGINES命令来查看:
在这里插入图片描述
还可以通过ENGINES表查看
在这里插入图片描述

2. 存储引擎比较

在这里插入图片描述
我们通过存储引擎表来看各自的优点:

InnoDB

  1. 默认的存储引擎(SUPPORT字段为DEFAULT)
  2. Supports transactions(支持事务), row-level locking(行级别锁), and foreign keys(外键)
  3. 支持分布式事务协议(XA),二阶段提交
    在这里插入图片描述

MEMORY

1.Hash based 使用哈希存储
2.stored in memory 存储在内存中
3.useful for temporary tables 使用临时表空间

MyISAM

表锁
在这里插入图片描述
适用只读场景

详细比较:

特征MyISAMMemoryInnoDBArchiveNDB
B树索引支持支持支持支持不支持
备份/时间点恢复支持支持支持支持支持
集群支持不支持不支持不支持不支持支持
聚簇索引
压缩数据支持(仅当使用压缩行格式时,才支持压缩的 MyISAM 表。使用 MyISAM 的压缩行格式的表是只读的。)不支持支持支持不支持
数据缓存没有没有
加密数据支持(加密功能在服务器中实现)支持(加密功能在服务器中实现)支持(加密功能在服务器中实现;在 MySQL 5.7 及更高版本中,支持静态数据加密。)支持(加密功能在服务器中实现)支持(加密功能在服务器中实现;自 NDB 8.0.22 起加密的 NDB 备份;NDB 8.0.29及更高版本支持透明NDB文件系统加密。)
外键支持不支持不支持支持不支持支持
全文搜索索引支持不支持支持(MySQL 5.6 及更高版本中提供了对 FULLTEXT 索引的支持。)不支持不支持
地理空间数据类型支持支持不支持支持支持支持
地理空间索引支持支持不支持支持(MySQL 5.7 及更高版本支持地理空间索引。)不支持不支持
哈希索引不支持支持不支持( InnoDB 在内部利用哈希索引来实现其自适应哈希索引功能。)不支持支持
索引缓存支持支持不支持不支持
锁定粒度表级别表级别行级别行级别行级别
MVCC不支持不支持支持不支持不支持
主从复制支持支持支持支持
存储限制256TBRAM64TB
T 树索引不支持不支持不支持不支持支持
事务不支持不支持支持不支持支持
更新数据字典的统计信息支持支持支持支持支持

InnoDB和MyISAM比较

  1. InnoDB支持事务,MyISAM不支持
  2. InnoDB支持行锁(针对的是索引),MyISAM是行锁
  3. InnoDB支持外键,MyISAM不支持
  4. InnoDB支持MVCC,MyISAM不支持
文章来源:https://blog.csdn.net/Hi_alan/article/details/135511561
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。