1,索引的分类
单值索引:一个索引值只包含三个列,一张表可以有多个单值索引。
唯一索引:索引的列的值必须是唯一的,但允许有空值。
复合索引:一个索引可以包含多个列。
主键索引:id不能重复,并且不允许出现空值
2,索引的含义
索引是一种单独的、物理的,对数据库表中一列或多列的值进行排序的一种存储结构。
为了加速表中数据行的检索而创建的一种分散的数据结构。
3,索引的优缺点
优点: 快速获取数据;
保证数据记录的唯一性;
实现表与表之间的参照完整性;
使用group by 和order by 进行检索时利用索引可以减少时间。
缺点: 索引需要占用物理空间;
当表中的数据进行增删改的时候,索引也要动态维护,降低了数据的维护速度。
4,索引的增删创建查
增:alter table tablename add index indexname(columnname)
删:drop index jindexname on tablename
创建:create index indexname on table tablename(columnname)
查:show index from tablename
唯一索引:unique index
主键自动创建主键索引
5,查看索引生效
explain select * from tablename
6,索引的弊端
@1:索引本身就很大,可以存在内存和硬盘,一般情况下放在硬盘。
@2:索引不适合的情况:少量数据;频繁更新的字段;很少被使用到的字段
7,索引的优势
@1,极大地提高了查询效率(因为降低了io的使用率)
@2,降低了CPU的使用效率(因为索引已经排序,索引order by可以直接使用)
8,mysql的索引结构
二叉树:
红黑树:
HASH:
B-Tree:
B+Tree:现在最常用的时B+Tree,可以避免全表扫描。
数据库课堂笔记---索引
最新推荐文章于 2021-01-12 00:32:58 发布