我有一個MySQL表存儲與4列成員的消息:加快ORDER BY
- MESSAGE_ID(主鍵,自動遞增)
- SENDER_ID(鍵)
- receiver_id(鍵)
- MESSAGE_CONTENT
我做很多的SELECT
S和我總是message_id DESC
排序,與查詢,如:
SELECT message_content
FROM table
WHERE sender_id='3333'
ORDER BY message_id DESC
LIMIT 30
在這樣的查詢
,所述ORDER BY
是昂貴的(它典型地具有通過數千行進行排序,其中,當由許多請求每個第二相乘產生一些負載)
有一種方法,以避免必須每次對錶格進行排序?由於我總是希望以相同的順序檢索結果,並且由於message_id列不會隨時間而改變,所以如果每個新表格行都插入到第一個位置,那麼表格總是會被排序,我不需要任何「ORDER BY「了。 這可能嗎?還是有其他解決方案?
謝謝
供參考:成千上萬的行通常是RDBMS的兒童遊戲。索引幾乎總是解決性能問題的答案。 – JohnFx 2012-04-22 21:44:02