1.之前看一篇利用sql优化器来测试索引,今天正好有时间参考https://blog.csdn.net/fangqun663775/article/details/72303795
也进行了相关测试。
2.首先建立三张表
课程表:
create table Course(
c_id int PRIMARY KEY,
name varchar(10)
)学生表:
create table Student(
id int PRIMARY KEY,
name varchar(10)
)学生成绩表:
CREATE table SC(
sc_id int PRIMARY KEY,
s_id int,
c_id int,
score int
)
3.插入数据
inser_course:
inser_student:
inser_sc:
4.执行语句
SELECT s.* from Student s INNER JOIN SC sc on sc.s_id = s.id where sc.score=100 and sc.S_id=1
利用plsql的优化器查看执行情况
、
从sql优化上面看执行顺序是先执行sc全局查询然后关联student.
5.建立索引后查看情况
CREATE index sc_score_index on SC(score);
CREATE index sc_s_id_index on SC(s_id);
建立索引后查询顺序是sc索引查询然后在关联student整体减少了1秒
5.之前也试验了很多sql建立索引都没有发现提升,索引的建立一定要根据优化器分析或者其他方式分析后慎重建立。