INNODB和MYISAM
在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持(表锁定) | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为2倍 |
- MYISAM 节约空间,速度较快,记录了总条数,所示 count(1) 查询总条数快
- INNODB 安全性高,支持事务处理,支持外键多表操作
物理空间位置
- 所有的数据库文件都存在data目录下,本质还是文件存储,一个文件夹就是一个数据库
mysql引擎在物理文件上的区别
- INNODB
- INNODB在文件中只有一个 *.frm文件,以及上级目录下的ibdata1文件
- MYISAM
- *.frm - 表结构的定义文件
- *.MYD - 数据文件(data)
- *.MYI - 索引文件(index)
其他区别
- 对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引。
- 清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表。