专栏名称: InfoTech
以传播大数据、解读行业趋势、数据化运营为核心的新媒体平台,已有150多万行业人士关注,荣获2013年新浪微博百强自媒体、2016年中国十大大数据领域影响力平台,关注我就是关注数据
今天看啥  ›  专栏  ›  InfoTech

一次非常有意思的 SQL 优化经历:从 30248.271s 到 0.001s

InfoTech  · 公众号  · 大数据  · 2023-09-22 07:04
    

文章预览

作者: 风过无痕的博客 cnblogs.com/tangyanbo/p/4462734.html 场景 用的数据库是mysql5.6,下面简单的介绍下场景。 课程表 create table Course( c_id int PRIMARY KEY, name varchar(10) ) 数据100条。 学生表 create table Student( id int PRIMARY KEY, name varchar(10) ) 数据70000条。 学生成绩表 CREATE table SC(     sc_id int PRIMARY KEY,        s_id int,       c_id int,       score int ) 数据70w条。 查询目的: 查找语文考100分的考生。 查询语句: select s.* from Student s where  s.s_id  in  (       select s_id        from SC sc         where  sc.c_id = 0 and sc.score = 100 ) 执行时间:30248.271s 晕,为什么这么慢,先来查看下查询计划: EXPLAIN select s.* from Student s     where  s.s_id  in  (      select s_id       from SC sc        where  sc.c_id = 0 and sc.score = 100 ) 发现没有用 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览