-1

以下のクエリでは、プロファイリングによって予想よりも少し時間がかかっているため、少し調整したいと考えています。クエリの目的は、指定された device_id の Messages テーブルから過去 3 時間のデータを取得し、最後のメッセージ受信 (時間の降順) で結果を並べ替えることです。現在、データベースには理想的とは思えない複合インデックスがあります。このクエリを高速化するために推奨事項を変更するインデックスまたはクエリ構文はありますか?

メッセージ テーブルの構造:

列:

id (auto incremented PK NUMBER(10))
device_id
model_id 
state
creation_date (DATE when row was inserted)
time (unix time message was transmitted)
//a bunch of other columns omitted

索引:

id
device_id, model_id, state (composite index)

クエリ:

select * from messages where device_id='0-12345678' and creation_date > sysdate-3/24 order by time desc
4

1 に答える 1