索引是帮助MySQL高效获取数据的数据结构
索引分类
- 主键索引 PRIMARY KEY 唯一标识,主键不可重复
- 唯一索引UNIQUE KEY 避免重复的列,可以重复,多个列都可以标识为唯一索引
- 常规索引KEY/INDEX 默认的
- 全文索引FULLTEXT 在特定的数据库引擎下才有,Myisam 快速定位
显示所有的索引信息
SHOW INDEX FROM `student`
增加一个索引
ALTER TABLE school.student ADD FULLTEXT INDEX `sname`(`sname`);
EXPLAIN 分析SQL的执行状况
EXPLAIN SELECT * FROM `student` ; --非全文索引
EXPLAIN SELECT * FROM `student` WHERE MATCH(`sname`) AGAINST ('张');
--插入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 app_user(`name`, `email`, `phone`, `gender`, `password`, `age`)
VALUES(CONCAT('用户', i), '24736743@qq.com', CONCAT('18', FLOOR(RAND()*(999999999-100000000)+100000000)),FLOOR(RAND()*2),UUID(), FLOOR(RAND()*100));
SET i = i + 1;
END WHILE;
RETURN i;
END;