在使用记录大于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')
答案 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)的某种组合的索引将很有用