表 存储引擎种类:
MyISAM结构:
.frm文件:存储表数据定义、表结构
.MYD文件:存储表数据行
.MYI文件:存储表的索引,存储在b+tree里面
MyISAM存储引擎结构:
根据col=49,根据b+tree快速定位到49,获取磁盘指针(values)0X90,从而获取表数据;
InnoDB结构存储引擎:必须需要有主键,为啥?
.ibd文件:索引文件和数据行合并
MyISAM和InnoDB区别:
MyISAM:索引所在磁盘指针
InnoDB:索引所在行其他字段存储
聚集索引:索引和数据在一起
非聚集索引:从一个文件去获取另一个文件,索引和数据没有在一起
问题:
InnoDB结构存储引擎:必须需要有主键,为啥?
如果InnoDB表没有主键,mysql会从表中寻找一个可以唯一标识的主键,
如果找不到,他会生成默认列(隐藏列)。来维护数据。
UUID:长串字符串,占有存储空间,比较慢等
为何使用自增主键?
后面大于前面,一次追加,满足叶子节点
联合索引的底层结构:
小的放左边,相同的比较下面的参数。