我約有。在表格tb_post
中的200K行,並且每5分鐘它具有約。 10個新插入。如何提高頻繁插入頻率下MySQL查詢的性能?
我使用下面的查詢,以獲取行 -
SELECT tb_post.ID, tb_post.USER_ID, tb_post.TEXT, tb_post.RATING, tb_post.CREATED_AT,
tb_user.ID, tb_user.NAME
FROM tb_post, tb_user
WHERE tb_post.USER_ID=tb_user.ID
ORDER BY tb_post.RATING DESC
LIMIT 30
它時超過10秒獲取的排序方式中的所有行。
以下是EXPLAIN查詢的報告:
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE tb_user ALL PRIMARY NULL NULL NULL 20950 Using temporary; Using filesort 1 SIMPLE tb_post ref tb_post_FI_1 tb_post_FI_1 4 tb_user.id 4
投入少:
tb_post.RATING
是浮子式- 上有
tb_post.USER_ID
任何人都可以給我建議指數我應該如何優化這一點的幾點提示查詢並提高其讀取性能?
PS:我是數據庫擴展問題的新手。因此,任何類型的建議都將對這個查詢特別有用。
爲什麼你不想要索引? – 2009-05-28 08:24:09
對不起,我感到困惑。我糾正了我的問題。我確實想索引,並且USER_ID已經被編入索引,但它仍然沒有幫助。問題是 - 我是否也需要索引其他欄目,如果是,哪些欄目? – Aditya 2009-05-28 08:30:15
也許你應該考慮使用JOIN操作,並小心你加入你的表的順序 - 首先變小。但它取決於你使用的數據庫..更多信息http://stackoverflow.com/questions/173726/when-and-why-are-database-joins-expensive/173744#173744 – 2009-05-28 08:37:57