MyISAM(早些年使用) | InnoDB(默认使用) | |
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为两倍 |
简单解释以后理解
事务:是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行
数据行锁定:行锁就是一锁锁一行或者多行记录,mysql的行锁是基于索引加载的,所以行锁是要加在索引响应的行上,即命中索引。
外键约束:MySQL的外键约束用来在两个表数据之间建立链接,其中一张表的一个字段被另一张表中对应的字段约束。也就是说,设置外键约束至少要有两种表,被约束的表叫做从表(子表),另一张叫做主表(父表),属于主从关系。
其中主表中的关联字段叫做主键,外表中的关联字段叫做外键。
外键约束主要作用就是能够让表与表之间的数据建立关联,使数据更加完整,关联性更强。
全文索引:通过数值比较、范围过滤等就可以完成绝大多数我们需要的查询,但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较。全文索引就是为这种场景设计的。
常规使用操作
- MyISAM
节约空间,速度较快 - InnoDB
安全性高,事务处理,多表多用户操作
在物理空间的存储位置
所有的数据文件都存储在data目录下,一个文件夹对应一个数据库
说明本质还是文件的存储
MyISAM和InnoDB引擎在物理文件上的区别
- InnoDB:
在数据库表中只有一个*.frm文件,以及上级目录下的ibata1文件
- MyISAM
- *.frm 表结构定义文件
- *.myd 数据文件(data)
- *.myi 索引文件(index)