索引原理

eg:没有索引,要查一个字段要每一个都查

但有了索引,就只要查一个就好了,

主键索引(PRIMARY KEY)

唯一的标识,主键不可重复,只能有一个列作为主键

唯一索引(UNIQUE KEY)

避免重复的列出现,唯一索引可以重复,多个列都可以标识位 唯一索引

常规索引(KEY/INDEX)

默认的,index。key关键字来设置

全文索引(FullText)

在特定的数据库引擎下才有,MyISAM

快捷定位数据

-- 索引的使用
 -- 1.在创建表的时候给字段增加索引
 -- 2.创建完毕后,增加索引
 -- 显示所有的索引信息
 SHOW INDEX FROM student
 
 -- 增加一个全文索引(索引名)列名
 ALTER TABLE school.`student`ADD FULLTEXT INDEX `studentname`(`studentname`);
  -- ALTER TABLE(改变表格)  数据库名.表格名  ADD FULLTEXT INDEX(增加一个全文索引)  索引名(列号)
 -- explain 分析sql执行的状况
 EXPLAIN SELECT * FROM student; -- 非全文索引
  EXPLAIN SELECT * FROM student WHERE MATCH(`studentname`)AGAINST(''); 

 

-- 插入索引
-- 索引名 ===id_表名_字段名
-- create index 索引名 on 表名(字段名)

CREATE INDEX id_student_name ON `student`(`studentname`);

 

 

 

 

索引在小数据的时候用处不大。但在大数据的时候很明显。

没加索引时:

eg:一百万条数据,查询了991749条数据才查到的。

查询了1s才查到,但一个网站一个人1s,网站要崩掉

加了索引才0.001s差距还是很大的

 

 

 

索引原则:

索引不是越多越好

不要对经常变动的数据加索引(变动一次,要更新一次索引)

小数据量的表不要加索引(没必要,500条一下,就是浪费,看不出来效果)

索引一般加在常用来查询的字段上

posted on 2022-05-07 19:20  阿霖找BUG  阅读(37)  评论(0)    收藏  举报