数据库草稿

187 阅读1分钟
1. 为什么MySQL要用自增列 作为主键(primary key)?
首先要明白mysql的聚集索引就是按照主键来组织的,每一行记录都会存放在B+树的叶子节点。
如果使用自增主键,那么每次新插入一个叶子节点,就会按照主键的顺序放在当前叶子节点的后续位置。
如果使用非自增主键,那么每次插入的主键可以看成一个随机值,所以新的记录可能被查到当前索引页的某个中间位置。
此时,mysql会频繁的移动数据(IO成本),分页,造成碎片(空间利用率低)。
2.索引的灵魂:有序
自适应哈希索引
前缀索引
InnoDB存储引擎会监控对表上各索引页的查询。如果观察到建立哈希索引可以带来速度提升,则建立哈希索引,称之为自适应哈希索引(Adaptive Hash Index, AHI)。
索引选择性(Index Selectivity)。索引选择性就是不重复的个数与总个数的比值。
select 1.0*count(distinct column_name)/count(*) from table_name
alter table test.Employee add key(FirstName(5))




https://www.cnblogs.com/studyzy/p/4310653.html