索引是为了提高数据得查询速度,相当于给数据进行编号,在查询数据得时候就可以通过编号快速找到对应的数据。索引是直接添加到字段上的。
- 索引包括:普通索引、唯一性索引、全文索引、单列索引、多列索引、空间索引
- 创建维护索引需要消耗时间,索引也需要占用物理空间
- 主键字段索引,可以给其它字段添加索引
索引设计原则
1.出现在where语句中的列,而不是select后面的列
2.索引值尽量唯一,效率更高
3.不要添加过多索引,维护成本更高
添加索引(两种方法)
alter table test add index in_id(id);
create index in_id on test(id);
删除索引(两种方法)
alter table test drop index in_id;
drop index in_id on test;
B+Tree
乱序插入数据,会自动按照id进行升序排列,这是因为主键自带索引
数据存储的内部结构类似于链表的形式,通过指针关联不同的数据
这种结构当数据量很大的时候,查询还是很慢,mysql如何解决?
分级查询
1.多条数据放入一个目录page,查找时先找到page
- 如果page也很多的时候,上层再加一个父page目录,查找时一层一层查找
这种查找数据得方式,就是B + Tree,数据一般两层就可以,最多不超过3层
网友评论