Search code examples
mysqlsqljoininner-join

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.

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

Solution

  • I see you have ID column, if that is your PK then you probably need some indexes.

    Try creating index on JOINING columns.. such as regiNo, Roll_Number on