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

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比较

对比InnoDBMyISAM
存储文件的形式.frm表定义文件,.ibd存放数据和索引的.frm表定义文件,.myd数据文件,.myi索引文件
表,行(针对的是索引)
外键支持不支持
事务支持不支持
CRUD可以同时读、写只可以同时读,不可同时写
MVCC支持不支持
热备支持不支持
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值