索引概述
介绍
索引(index)是帮助MySql高效获取数据的数据结构(有序),在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
优点
1.提高数据检索的效率,降低数据库的IO成本缺点
2.通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗
缺点:
1.索引列也是要占用空间的
2.索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE时,效率降低
索引结构
二叉树
特点:顺序插入时会形成一个链表,查询性能大大降低
大量数据时,层级较深,检索速度慢
B-Tree(多叉路衡查找树)
最大度数为n时,那么这颗B树每个节点最多存储n-1个key值
B+Tree
概述:B+Tree是B-Tree的变种
特点:所有数据都会出现在叶子节点中
叶子节点形成一个单向链表
非叶子节点仅仅起到索引数据作用,具体的数据都是在叶子节点存放的
Hash
概述:哈希索引就是采用一定的hash算法,将键值换算成新的hash值,映射到对应的槽位上,然后存储在hash表中。
特点:
索引分类
主键索引(primary):针对于表中主键创建的索引
特点:默认自动创建,只能有一个
唯一索引(unique):避免同一个表中某数据列中的值重复
特点:可以有多个
常规索引:快速定位特定索引
特点:可以有多个
全文索引(fulltext):全文索引查找的是文本中的关键词,而不是比较索引中的值
特点:可以有多个
聚集索引&二级索引
聚集索引:
特点:必须有,而且只有一个
二级索引
含义:将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键
特点:可以有多个
聚集索引选取规则:
如果存在主键,主键索引就是聚集索引。
索引语法
创建索引:
CREAT [UNIQUE | FULLTEXT] INDEX index_name ON tavle_name (index_col_name......);
查看索引:
SHOW INDEX FROM talbe_name;
删除索引:
DROP INDEX index_name ON table_name;

被折叠的 条评论
为什么被折叠?



