MyIASM
是MySQL5.5之前版本默认存储引擎(但是我发现本地还是没变化,不知道怎么回事,而且默认引擎是可以设置的)
不支持事务操作
表锁,不支持行级锁和外键,因此当执行inset或者update的时候,需要锁定整个表,效率比较低。
只能缓冲索引
支持全文搜索,
保存了表的行数,使用count(*) 无where 的时候可以直接读取而不用扫描表,
如果表的读操作远远大于写操作,可以选择,大批量的插入insert ,处理比较快
三个文件组成,数据文件(.MYD),索引文件(.MYI)和结构文件(.frm)
表损坏修复(不了解,为啥损坏,需要修复),可以在不同服务器上拷贝数据文件和索引文件
支持表压缩,压缩后只读
索引B+树的数据结构中存储的实际内容是数据的地址值,也就是说,索引跟数据是分开的,只不过使用索引指向了实际数据,这种索引模式成为非聚簇索引
有隐藏字段,主键,不确定是否有:事务id,回滚指针
Innodb
是MySQL5.5以及之后版本默认存储引擎
提供ACID事务支持
拥有行级锁与外键约束,行级锁是通过索引机制实现的
设计的目的就是处理大数据容量的数据库,本身是基于mysql后台的完整的系统,运行时,Innodb会在内存中建立缓冲池,用于缓冲数据和索引,启动比较慢
灾难恢复性好
不支持全文搜索
不会保存表的行数,
因为锁的粒度小,不会锁定全表,高并发场景下使用会提升效率
update处理比较快
两个文件组成,数据跟索引文件和结构文件(.frm)
可以利用数据日志来进行数据的恢复,主键查询比较快
索引B+树的数据结构,存储的都是实际的数据,成为聚簇索引
有隐藏字段,主键,事务id,回滚指针