何百万ものレコードを持つ顧客テーブルがあります。お客様
id | name | .....
注文テーブルもあります
id | custID | orderDate | ....
30 日以上注文していない人をすべて見つける必要があります。これには、注文したことがない人も含まれている必要があります。
select name,customer.id from customer where id in
(select custID from orders where datediff(curdate(),orders.orderDate) > 30 )
union
select name,customer.id from customer left join orders on customer.id = orders.custID where orders.id is null
クエリを最適化するにはどうすればよいですか?