索引

    xiaoxiao2022-07-07  192

    索引的定义 索引是一种数据结构,B树是一种类似于二叉树的结构,使用B树可以有效的降低树的高度。降低树的高度可以有效提高检索的效率。B+树是B树的一种升级,它的所有数据都存放在叶子结点并且叶子结点之间增加了指针形成链表。它可以在符合多条结果时,由于数据都在叶子结点,且同时是链表结构,只需要首尾相接,通过链表就可以把所有数据取出来了。

    索引弊端: 1.索引本身很大,占用内存/磁盘空间。 2.不是所有情况都适合建立索引:a)少量数据 b)频繁更新的数据 c) 很少使用的字段。 3.索引能提高查询效率,但降低增删改的效率。

    索引优势: 1.提高查询效率(降低io使用效率)。 2.降低CPU使用率,因为本身B树是一个排好序的结构。3层B树可以存放数百万条数据,这里的B树指B+树。B+树中查找数据的效率均是N次,N是B+树的高度。

    索引的分类: 单值索引:单列一个表可以有多个单值索引。 唯一索引:不能重复一般是id字段。(主键索引和唯一索引区别是:前者不能是NULL) 复合索引:多个列构成的索引。(相当于书的二级目录)

    创建方式一:create 索引类型 索引名 on 表(字段) 例: 单值:create index dept_index on tb(dept); 唯一:create unique index name_index tb(name); 复合:create index dept_name_index on tb(dept,name);

    修改: alter table 表名 索引类型 索引名(字段) 创建方式二: 例: 单值:alter table tb add index dept_index(dept); 唯一:alter table tb add unique index name_index(dept); 复合:alter table tb add index dept_name_index(dept,name); 注意:如果一个字段是 primary key,则默认为主键索引。 删除索引:drop index 索引名 on 表名 查询索引:show index from 表名

    最新回复(0)