MySQL存储引擎
1、常用命令查看存储引擎
#查看MySQL提供的所有存储引擎
show engines;
#查看默认的存储引擎
show variables like '%storage_engine%';
可以自己在电脑上查看一下,MySQL当前默认的存储引擎是InnoDB。
在5.5版本之前默认的存储引擎是MyISAM。
2、MyISAM 和 InnoDB 区别
-
是否支持行级锁 : MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。
-
是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
-
是否支持外键: MyISAM不支持,而InnoDB支持。
-
是否支持MVCC :MVCC (Multi-Version Concurrency Control) 多版本并发控制,MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问;在编程语言中实现事务内存。
仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在
READ COMMITTED
和REPEATABLE READ
两个隔离级别下工作; MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。