索引

索引(index)是为了帮助mysql高效获取数据的数据结构。

 

索引的分类

1.主键索引(PRIMARY KEY)

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

2.唯一索引(UNIQUE KEY)

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

3. 常规索引(KEY/INDEX)

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

4. 全文索引(FullText)

  • 快速定位数据

 

列子:

1.先创建一个空表

 

 

 

2.往表里插入100万条数据

DELIMITER $$        创建函数
CREATE FUNCTION mock_data()
RETURNS INT 
BEGIN
DECLARE num INT DEFAULT 1000000;
DECLARE  i  INT DEFAULT 0;
WHILE i<num DO
INSERT INTO USER (`name`,`age`)
VALUES(CONCAT('用户',i),FLOOR(RAND()*100));
SET i = i+1;
END WHILE;    
RETURN i;
END;


SELECT mock_data();   执行函数

 

3.测试

在没有索引的情况下 需要0.744

 

 

 

 

 

 

然后再创建一个索引

-- create index 索引名 on 表(字段)
CREATE INDEX  id_user_name ON USER(NAME);

重新查询一下

 

 

 

 

 

 

索引在小数据量的时候,用处不大,但是在大数据的时候,可以很明显。

 

索引原则

  • 索引不是越多越好
  • 不要对经常变动的数据加索引
  • 小数据量的表不需要加索引
  • 索引一般加再常用来查询的字段上

 

posted @ 2022-06-23 14:02  不想当将军的好士兵  阅读(87)  评论(0)    收藏  举报