MySQL-存储引擎
MySQL-存储引擎
xukun常见的存储引擎有MyISAM
、InnoDB
、Memory
在MySQL 5.5版本之前,默认的存储引擎是MyISAM
在MySQL 5.5版本之后,默认的存储引擎变为了InnoDB
而Memory是MySQL 3.23版本中引入的使用内存缓存数据,将索引存储在磁盘上的一种引擎。
在日常使用过程中我们主要用到前两种引擎,二者之间有很大差别,主要包括:
- InnoDB支持事务,MyISAM不支持事务。
- InnoDB最小的锁粒度为行级锁,MyISAM只支持表级锁。
- InnoDB数据支持聚簇索引和非聚簇索引存储,MyISAM只支持非聚簇索引。
- InnoDB支持外键关联,MyISAM不支持外键。
- InnoDB支持MVCC多版本并发控制机制,MyISAM不支持MVCC。
(扩展)借助命令行查看当前使用的存储引擎
查看 MySQL 版本信息
1 | SHOW VARIABLES LIKE '%storage_engine%'; |
查看 MySQL支持的存储引擎(MySQL8.0.34)
1 | SHOW ENGINES; |
修改当前数据库的存储引擎
将名为 users
表的存储引擎从 MyISAM 切换为InnoDB
1 | ALTER TABLE users ENGINE = InnoDB; |
在建表时直接指定存储引擎:
1 | CREATE TABLE products ( |
设置默认的存储引擎
在配置文件中设置:
1 | [mysqld] |
使用SET
命令设置:
1 | SET default_storage_engine = engine_name; |
在当前会话中将默认存储引擎设置为 MyISAM:
1 | SET default_storage_engine = MyISAM; |