注文履歴 (ltv) の合計とともに、可能な顧客のリストを取得しようとしています。
order by を指定しないと、このクエリは 1 秒以内に読み込まれます。とクエリを使用するorder by
と、90 秒以上かかります。
SELECT a.customerid,a.firstname,a.lastname,Orders.ltv
FROM customers a
LEFT JOIN (
SELECT customerid,
SUM(amount) as ltv
FROM orders
GROUP BY customerid) Orders
ON Orders.customerid=a.customerid
ORDER BY
Orders.ltv DESC
LIMIT 0,10
これをスピードアップする方法はありますか?
編集:クエリを少しクリーンアップしすぎたと思います。クエリは、実際にはこのバージョンよりも少し複雑です。その他のデータは顧客テーブルから選択され、同様に並べ替えることができます。