次のクエリの場合:
SELECT m.id, m.body, m.poster, m.added
FROM messages m
WHERE ((m.poster_id = '11' OR m.poster_id = '22') AND (m.to = '11' OR m.to = '22'))
ORDER BY m.id DESC
LIMIT 10
最高のインデックスは何ですか?
(poster_id, to, id) を試しました - 約 1.5 秒 (poster_id, to) を試しました - 約 0,10 秒
注文を削除すると、0.00秒になります
問題は、空の結果でも、ORDER BY を使用しても、まだ 0.09 が得られることです。
説明:
+----+-------------+-------+-------+------------------------------+-----------------+---------+------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+------------------------------+-----------------+---------+------+------+-----------------------------+
| 1 | SIMPLE | m | range | posterid_to_idx,to,poster_id | posterid_to_idx | 8 | NULL | 4 | Using where; Using filesort |
+----+-------------+-------+-------+------------------------------+-----------------+---------+------+------+-----------------------------+
ありがとう