索引
索引(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);
重新查询一下
索引在小数据量的时候,用处不大,但是在大数据的时候,可以很明显。
索引原则
- 索引不是越多越好
- 不要对经常变动的数据加索引
- 小数据量的表不需要加索引
- 索引一般加再常用来查询的字段上