一、InnoDB存储引擎
1、每张表在磁盘上存储成两个文件:
- frm文件:存储表结构(表的定义数据)。
- idb文件:存储表数据和索引信息。
2、主要特点:
- 支持行级锁:使用的锁粒度为行级锁,可以支持更高的并发。
- 支持事务:默认的事务隔离级别为可重复度,通过MVCC(并发版本控制)来实现的。附加:有点损失效率。
- 数据和索引放在了一起(idb文件)。
- 共享表空间。
二、MyISAM存储引擎
1、每张表在磁盘上存储成三个文件:
- frm文件: 存储表结构。
- MYD文件:存放表的具体记录的数据。
- MYI文件: 存储表的索引信息
2、主要特点:
- 支持表级锁:
- 不支持事务,但是这也意味着他的存储速度更快,如果你的读写操作允许有错误数据的话,只是追求速度,可以选择这个存储引擎。
- 数据(MYD)和索引(MYI)分开存储。
- 独享表空间。
三、Memory存储引擎
四、如何决定使用哪种存储引擎
1、执行查询操作多的表使用myisam存储引擎(使用innodb浪费资源)。
2、执行写操作多的表使用innodb存储引擎。(增加、删除、修改)
五、存储引擎基本命令
1、查看数据库支持的所有存储引擎
mysql> show engines; mysql> show enginesG;
2、查看数据库目前使用的存储引擎
mysql> show variables like '%storage_engine%';
3、查看数据库中某张表的存储引擎
mysql> show table status like "tb_user"; mysql> show table status from 数据库 where name="tb_user"; mysql> show create table tb_user;
修改数据库中某张表的存储引擎 mysql> alter table tb_user engine=innodb;
创建表时指定存储引擎 mysql> create table 表名(...)engine=myisam;
https://www.cnblogs.com/zhming26/p/6322353.html
https://blog.csdn.net/lx_Frolf/article/details/85339941
https://baijiahao.baidu.com/s?id=1655327558614401593&wfr=spider&for=pc