目录
引擎是基于表的而不是数据库
MyISAM引擎(非聚集索引方式)
MylSAM是MySQL的默认数据库引擎( 5.5版之前) ,由早期的ISAM ( Indexed Sequential Access Method :有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理( transaction )。
非聚簇索引:
将数据与索引分开储存,索引结构的叶子结点指向了数据的对应位置
1、利用主键 id为主键索引时
2、不以主键id为索引的时候
例如以username为索引
假如重复了
就像我们平常的时候,有几个重复的就查出来几个,
因为我们计算机底层都是二进制,不管是什么类型都可以排序
INNODB引擎(聚集索引方式)
InnoDB ,是MySQL的数据库引擎之- - ,为MySQL AB发布binary的标准之一-。InnoDB由Innobase Oy公司所开发2006年五月时由甲骨文公司并购。与传统的ISAM与MyISAM相比 ,InnoDB的最大特色就是支持了ACID兼容的事务( Transaction )功能,类似于PostgreSQL。目前InnoDB采用双轨制授权,一是GPL授权,另一是专有软件授权。
聚簇索引:
就是将数据储存和索引放到了一起,索引结构的叶子结点保存了数据
1、利用主键 id为主键索引时
叶子结点存储的事具体的数据内容,而MylSAM存储的是数据的地址
2、不以主键id为索引的时候
这是就不是存储所有的数据了,而是将主键ID存储到那,并且再次利用ID的索引查找对应的数据
这样做就大大节省了空间也减少了数据数据的操作次数
存储对比
创建两个不同引擎的表,也就是磁盘持久化的过程
可以看到生成了不同后缀的文件
其中frm就是我们的建表语句文件,所以都一样
MyISAM引擎: user2
user2.MYD 表的里面的数据文件
user2.MYI 表的里面的索引文件
INNODB引擎: user
user. ibd表的里面的数据+索引文件