1.建表的时候创建
2.建表后再加
普通索引
ALTER TABLE score
ADD INDEX index_stuid(studentid);
复合索引
ALTER TABLE students
dd INDEX index_sname_saddress(sname,saddress);
使用索引
SELECT studentid,score
FROM score USE INDEX(index_stuid)
WHERE studentid>=3;
删除索引
DROP INDEX index_sname_saddress ON students;
补充:
1.如果索引建错了,更新没有意义,直接删除再重新创建
2.索引会提高检索效率,但是操作数据时(增,删,改)会同步操作索引,需要的时间会长一些
3. 怎么查看业务执行的时间
方法一:看SQL语句的执行信息
方法二:使用时间函数,再执行业务执行前后加时间变量,取当前时间,二时间相减,就是业务的执行时间
视图(虚拟表)
视图上还可以再建视图
作用:简化表结构,满足不同业务的需求,可以少建表
创建视图
CREATE VIEW view_stu_score
AS
SELECT a.scode AS 学号,a.sname AS 姓名,b.score AS 分数
FROM students a
INNER JOIN score b ON a.scode=b.studentid
INNER JOIN course c ON b.courseid=c.courseid;
使用视图
SELECT * FROM view_stu_score WHERE 学号=1;
更新视图
加性别字段:ssex
ALTER VIEW view_stu_score
AS
SELECT a.scode AS 学号,a.sname AS 姓名,b.score AS 分数,a.ssex AS 性别
FROM students a
INNER JOIN score b ON a.scode=b.studentid
INNER JOIN course c ON b.courseid=c.courseid;
删除视图
DROP VIEW view_stu_score;