我有這個users
表:MySQL查詢優化需要
id : int (255)
name: char (100)
last_comment_target: int(100)
last_comment_date: datetime
此表有大約1.3mil行。
PKEY
和BTREE
是id
,last_comment_target
和last_comment_date
。
而且,我想執行一系列查詢:
SELECT * FROM users
WHERE id IN (1,2,3,5,...[around 5000 ids])
AND last_comment_target > 0
ORDER BY last_comment_dt DESC LIMIT 0,20;
有時查詢可以採取只要3秒鐘。我想知道是否有更好的方法來優化這個查詢。或者,如果這個查詢可以被重寫。
非常感謝您的幫助。
你從哪裏得到5000個ID? – Jacob
5000個ID來自哪裏?如果你可以把它們放到一個表格中(或者它們已經在表格中)並且進行連接,它可能會更快。更好的是,如果5000個ID可以與用戶中的屬性相關聯,那麼您可以將其指定爲簡單條件 - 如果需要,甚至可以對其進行索引。 –
這5000個ID是手動插入還是可以查詢? – AJC