常见的索引
主键和二级索引
MySQL学习笔记-主键索引和二级索引_mysql中主键索引和二级索引的区别_爱因诗贤的博客-CSDN博客 MYSQL-主键索引与二级索引_mysql二级索引存在哪个文件_青苔小榭的博客-CSDN博客
采用主键索引的好处:如果元素的位置发生修改,那么查找的复杂度没有变化 因为只是根据主键进行查找
缺点:查找困难:如果想要寻找Abby这个人需要找到他的学号(主键)然后再通过Mysql的主索引找到所在的表项 然后找到相应的地址 这样就多了一次IO的翻译。
二级索引的索引键不是主键
唯一索引
定义:
反之 如果使用sdept创立 索引的话 他就不是唯一索引。
创建唯一索引:
Create unique INDEX 索引名 ON 关系(想要进行唯一约束的属性名);
外键索引
外键索引 主要的作用是加快参照完整性检查和连接的速度。
- CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;
- SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;
- RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;
- NO ACTION:同 RESTRICT,也是首先先检查外键;
级联删除的一个例子
MySQL 联级删除(on delete cascade)应用_cascade delete_浅然言而信的博客-CSDN博客
这是一个很好的例子也是一个比较特殊的例子 自己和自己连接然后做级联删除的例子 级联删除的时候在外键声明的时候一定要加上on delete cascade;否则当删除键的时候 被参照关系将违反参照完整性约束 。
外键索引不需要去创建只需要在索引的时候 去声明foreign key就行
删除索引