索引
- 作用
- 约束
- 加速查找
- 索引
- 普通索引:加速查找
- 主键索引:加速查找 + 不能为空 + 不能重复
- 唯一索引:加速查找 + 不能重复
- 联合索引 (联合唯一索引)
- 联合主键索引(多列联合起来作为主键索引)
- 联合唯一索引(多列联合起来作为唯一索引)
- 联合普通索引
- 加速查找(索引就像一个目录一样,如果没有目录就要从头到尾看一遍)
- 无索引:从前到后依次查找
- 索引:
会创建一个额外文件,如果查找时,先到额外文件茶,查到了再到数据库里找 - 索引种类
- hash索引:把内容转换成hash值,把它的值和在数据库的地址存储成一个表,但位置和原来数据库的数据位置不同
优点:查找单值时非常快
缺点:不能按范围查找,如果想要按ID查到,但hash索引位置不固定就不能查找出来 - btree索引:
- 把数据转换成数字然后放进二叉树中,假如是1024不需要从1查到1024查1024次,只需要2**10,查找10次
- hash索引:把内容转换成hash值,把它的值和在数据库的地址存储成一个表,但位置和原来数据库的数据位置不同
- 建立索引:
- 额外的文件保存特殊的数据结构
- 查询快;插入更新删除慢,因为在数据库和索引中同时改动
- 命中索引,创建索引了索引
select * from userinfo where name = ‘小明‘; 快
select * from userinfo where name like ‘小明‘; 慢 - 主键一般创建表的时候都会创建
- 普通索引:
create index 索引名称 on 表(列名)
能创建就能删除 drop index 索引名称 on 表; - 唯一索引:(创建表的时候也能创建)
create unique index 索引名称 on 表(列名)
drop unique index 索引名称 on 表; - 联合索引:(普通联合索引和唯一联合索引)
create (unique) index 索引名称 on 表(列名,列名)
drop (unique) index 索引名称 on 表;
原文:https://www.cnblogs.com/otome/p/12498111.html
如果您也喜欢它,动动您的小指点个赞吧