如何减少MySQL中的查询执行时间

时间:2019-12-13 11:14:11

标签: mysql

在使用记录大于154381的表和内部查询的mysql中,如何减少查询执行时间

这是我的查询:

SELECT txn_gallery.gallery_image 
FROM txn_gallery 
WHERE villa_id IN(SELECT villa_id 
                  FROM txn_notifications 
                  LEFT JOIN mst_villa on mst_villa.sk_villa_id=txn_notifications.villa_id 
                  WHERE txn_notifications.member_id='235' and txn_notifications.tran_status='Approved')

2 个答案:

答案 0 :(得分:1)

最好使用连接而不是内部查询

JOIN可以比同等子查询更快,因为服务器可能可以更好地对其进行优化

因此子查询可能比LEFT [OUTER] JOIN慢

答案 1 :(得分:1)

您的查询在功能上与以下内容相同:

SELECT g.gallery_image 
  FROM txn_gallery g
  JOIN txn_notifications n
    ON n.villa_id = g.villa_id
 WHERE n.member_id = 235
   and n.tran_status = 'Approved'

(villa_id,member_id,tran_status)的某种组合的索引将很有用