首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL优化方法

SQL优化方法
EN

Stack Overflow用户
提问于 2022-11-23 01:18:37
回答 1查看 35关注 0票数 0

我有一个关于优化这个查询的新手问题。

假设我有三张桌子。学生、班级和团体

假设我有数万亿的数据/记录,那么这个查询的最佳方式是什么?我应该为我使用过的每一列创建一个索引吗?首先创建一个临时表而不是子查询?谢谢!

代码语言:javascript
复制
SELECT  Student_ID,
    BDate,
    SUM(Calc1 + Calc2 ) / 2 AS Calc4
        FROM (
            SELECT a.student_id AS Student_ID, a.birthday AS BDate, 
        SUM(a.test1 + a.test2 / a.test3) AS Calc1,
        SUM(a.test1 + a.test2 + a.test3) AS Calc2,
        AVG(b.test1 + b.test2 + b.test3)*2 AS Calc3,
             
            FROM Students a
            LEFT JOIN Group b on a.Name = b.Name
            LEFT JOIN Class c on  b.Name = c.Name
            WHERE a.Forte ('Math', 'PE')
            AND a.Hobby ('Eating', 'Video Games')
            GROUP BY a.Student_ID, a.birthday
                 ) subA
               GROUP BY Student_ID, BDate
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 04:23:57

it.

  • INDEX(Student_ID, birthday)
  • 去掉外部SELECT,把calc4折叠进去。
  • 去除Calc3;在a

上不使用SELECT

我希望bcPRIMARY KEY(name)。但是,有一百万行,就会有重复的。因此,我宣布这个问题不完整。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74540769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档