# 存储引擎
TIP
1、Mysql提供了数据存储的接口,引擎就是这些接口各种各样的实现方案
2、Mysql有好几种存储引擎,各有特点
3、存储引擎不是针对数据库的,是以表为单位的,如果数据库有10张表,这10张表想用哪个引擎都随便
进入到Mysql数据库下
show ENGINES;
列表如下
| Engine | Support | Comment | Transactions | XA | Savepoints |
|---|---|---|---|---|---|
| FEDERATED | NO | Federated MySQL storage engine | |||
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
常用的也就InnoDB、MyISAM
InnoDB是上面这些引擎中,唯一支持事务的,并且是行级锁,大多数人也都用这个,MyISAM不支持事务,而且还是表级锁,插入一条数据时,其他人再想向这表里插,就都得排队等着
关于选择InnoDB还是MyISAM并不是绝对的,常见的说法就是
如果写操作多就用InnoDB,读操作多就用MyISAM