MySQL数据库常用存储引擎对比

MySQL常用存储引擎

特性 MyISAM InnoDB MEMORY
存储限制 256TB 64TB RAM
事务 不支持 支持 不支持
锁机制 表级锁 行级锁(默认) 表级锁
外键 不支持 支持 不支持
B树索引 支持 支持 支持
哈希索引 不支持 支持 支持
全文索引 支持 支持 不支持
索引缓存 支持 支持 支持

注:

  1. 以上针对MySQL 5.6以后的版本
  2. InnoDB虽然支持哈希索引,但不能人为干预是否在一张表中生成哈希索引,该引擎会根据表的使用情况自动生成哈希索引。
  3. InnoDB默认是行级锁,也支持表级锁。

这里主要讲下InnoDB的锁分类:
{ ( S ) ( X ) 行级锁\begin{cases} 共享锁(S)\\ 排他锁(X)\\ \end{cases}
{ ( S ) ( X ) ( I S ) ( I X ) 表级锁\begin{cases} 共享锁(S)\\ 排他锁(X)\\ 意向共享锁(IS)\\ 意向排他锁(IX)\\ \end{cases}
1)意向锁是InnoDB自动加的,不需要用户干预。
2)行级锁是基于索引的,也就是说,只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁!

适用场景:

  1. MyISAM存储引擎:不支持事务也不支持外键,但提供高速存储和检索,适用于以查询或插入数据为主的场合。
  2. InnoDB存储引擎:MySQL的默认存储引擎,支持事务机制,适用于频繁的更新、删除操作且是并发操作的场合。
  3. MEMORY存储引擎:该存储引擎使用内存来存储数据,因此适用于数据量较小、对安全性要求不高且需要进行快速读写的场合。

猜你喜欢

转载自blog.csdn.net/qq_35556064/article/details/82876383