同じテーブル内の日付フィールドに基づいて一意の最新結果を取得するには、以下のクエリを実行しています。しかし、このクエリは、テーブルが大きくなると時間がかかりすぎます。これを改善するための提案は大歓迎です。クエリの実行に時間がかかります
select
t2.*
from
(
select
(
select
id
from
ctc_pre_assets ti
where
ti.ctcassettag = t1.ctcassettag
order by
ti.createddate desc limit 1
) lid
from
(
select
distinct ctcassettag
from
ctc_pre_assets
) t1
) ro,
ctc_pre_assets t2
where
t2.id = ro.lid
order by
id
私たちの能力は同じ行を複数回含むことができますが、各行は異なるタイムスタンプを持ちます。私のオブジェクトは単一の列に基づいています。たとえば、assettag最新のタイムスタンプを持つ各アセットタグに対して1行を取得したいとします。
テーブル定義とEXPLAIN出力を指定してください。 –
インデックスを使用しようとしましたか? – Dezigo
インデックスを追加した後は大丈夫ですが、それでもまだ遅いです。 20秒以上かかる – Rajesh