MySQL索引
一.概述
索引在MySQL中称为键。
二.分类
1.数据结构上
常用的是Hash和BTree.
(1).B-tree索引

b-tree,使用二分法检索数据,蓝色块是数据项,黄色是指针。非叶子结点不存储真实的数据,只存储指引搜索的方向的数据项。B树的层数,是磁盘的IO次数。
特性:索引字段要尽量的小,索引最左匹配特性。
(2).Hash索引

Hash index,只有在精确值的索引列才有作用。对于每一行数据,存储引擎都会对Hash index列给出一个Hash码。
依赖单值查找类型的系统,我们称之为键值存储。MySQL这类应用,尽可能使用Hash index.
优化Order by的时候,不能使用Hash index,因为Hash table不好找到下一个元素.
2.数据类型
唯一索引、全文索引、普通索引.
(1).唯一索引:限制值是唯一的。(猜想:索引取值然后再校验值,确实是否唯一).
(2).普通索引:添加唯一的目的就是加快对数据的访问。
(3).全文索引:全文索引建立在文本数据类型列上(char、varchar、text),
3.多列索引
联合唯一索引、联合普通索引、联合主键索引.
索引寻值的基本单位是多列.
三.相关指令
show index from table; //显示一张表上创建的索引.
四.应用场景
索引多用于检索,SQL中控制检索的关键字为where、group_by、order_by,所以索引多用于这些关联的字段上。
1.b-tree索引多用于模糊,范围的检索.
2.Hash索引多用于精确检索.

浙公网安备 33010602011771号