我有500萬行的信息表,我想找回過去的10行的兩個用戶的交談優化查詢SQL傳令
+---------------------------------------------------------------+
| messages |
+---------------------------------------------------------------+
| message_id | id_sender | id_dest | subject | message | time |
+---------------------------------------------------------------+
這是我可以優化它的查詢?
SELECT *
FROM
(SELECT message
FROM messages
WHERE (id_sender = id1 AND id_dest = id2) or
(id_dest = id1 AND id_sender = id2)
ORDER BY message_id DESC
LIMIT 10) AS ttbl
ORDER BY message_id ASC
謝謝!
我有id_sender id_dest指數和message_1d上優化
更新
你想優化什麼?速度?你有索引嗎?這是爲postgresql或MySQL?你已經標記了兩個,但它看起來像mysql輸出。 – bma
包含您的查詢的解釋計劃。你在什麼版本的PostgreSQL? – Kuberchaun
基於或分解的'||'運算符,此查詢僅適用於mysql,因此刪除postgresql標記。 –