一、存储引擎
1、InnoDB
默认的MySQL存储引擎,提供了具有提交、回滚和崩溃恢复能力的食物安全。支持的是行锁、外键、事务。
会将自增id记录在内存中,所以在进行删除操作后任以之前最大id自增,单重启后则是根据表现有的最大id计算自增,丢失内存中记录的历史最大id。
2、MyISAM
ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,不是事务安全的,不支持外键。由于结构简单,支持大量select、insert效率上优于Innodb,MyISAM是表锁,使用小型应用
自增id都是记录在文件中,重启不影响历史最大id
每个MyISAM在磁盘上存储三个文件。文件名与表名相同,扩展名为.frm(表存储定义).MYD(MYDATA,存储数据)、.MYI(MYIndex,存储索引)
3、InnoDB与MyISAM区别
MyISAM是5.1版本前的默认引擎,支持全文检索、压缩、空间函数等,但不支持事务和行级锁,一般用于有大量查询但少量插入的场景使用,不支持外键,并且索引和数据时分开存储的
InnoDB是基于聚簇索引建立的,支持事务、行级锁、外键,并通过MVCC来支持高并发,索引和数据时存在一起的
二、聚簇索引和非聚簇索引
1、聚簇索引和非聚簇索引的概念
(1)、聚簇索引(也叫聚集索引)就是将索引和数据存储放在了一起,如InnoDB存储引擎这种B+树结构
(2)、非聚簇索引就是将索引和数据非开存储;
2、查找方式
非聚簇索引如MyISAM这种通过索引查到的是数据存储的空间地址,之后去获取数据。
网友评论