简体   繁体   English

如何使用内部联接使选择查询更有效

[英]How can I make select query more efficient using inner join

I want to select data from multiple tables but as the data gets larger my system become slow when fetching from MySQL database.我想从多个表中选择数据,但随着数据变大,我的系统在从 MySQL 数据库中获取时变得很慢。

How can I make this query more efficient.我怎样才能使这个查询更有效。

SELECT s.id,s.regiNo, 
       s.firstName as fname, 
       s.middleName as mname, 
       s.lastName as lname, 
       s.gender, s.class_group, c.subjects,
       e.mid_term, e.count_assessment, e.examid, 
       e.scored, e.internaltype, e.Class, 
       e.Year,e.total_score,e.sub_highest,e.sub_lowest,
       e.first_term,e.second_term,e.third_term,e.avg_score 
FROM student s 
inner join exam e on s.regiNo = e.Roll_Number 
inner join subjects c on e.sub_id = c.subect_code  
group by s.regiNo, s.firstName, s.middleName, s.lastName, 
         s.gender, s.class_group, c.subjects,
         e.mid_term, e.count_assessment, e.examid, e.scored, e.internaltype, 
         e.Class, e.Year,e.total_score,e.sub_highest,e.sub_lowest,
         e.first_term,e.second_term,e.third_term,e.avg_score,s.id

I see you have ID column, if that is your PK then you probably need some indexes.我看到您有 ID 列,如果那是您的 PK,那么您可能需要一些索引。

Try creating index on JOINING columns.. such as regiNo, Roll_Number on尝试在 JOINING 列上创建索引.. 例如 regiNo、Roll_Number

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM