常用的有以下3种
InnoDB、Myisam、Memory
区别:
1.InnoDB支持事务,支持外键,支持行锁,写入数据时操作快,支持ACID特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)的英文缩写,MySQL5.6版本以上才支持全文索引
2.Myisam不支持事务。不支持外键,支持表锁,支持全文索引,读取数据快
3.Memory所有的数据都保留在内存中,不需要进行磁盘的IO所以读取的速度很快, 但是一旦关机的话表的结构会保留但是数据就会丢失,表支持Hash索引,因此查找速度很快
4.InnoDB跟Myisam的默认索引是B+tree,Memory的默认索引是hash
5.InnoDB聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据
6.Myisam非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因