我在MySQL數據庫中有兩個整數列的表格,例如:SQL查詢找到兩個特定組中的用戶數
userid | groupid
10 | 300
11 | 300
11 | 301
12 | 302
給定兩個groupid,我正在尋找最好和最快的方法來找到兩個組中的userid。我的表格包含23M行,我需要爲每個不同的組對。目前,兩列都被編入索引,但即使對於一對組,也需要很長時間才能得到結果,而且我有1000個不同的組別。我現在正在運行的查詢是:
select count(t2.userid)
from usergroup t1, usergroup t2
where t1.groupid = 27 and t2.groupid = 714 and t1.userid = t2.userid
有沒有辦法快速做到這一點?
define indexed?你有什麼指標。 – 2011-06-16 00:47:08
那麼當我發送創建方案到SQL編輯器的索引定義是: KEY'uindex'('userid'), KEY'gindex'('groupid') – Nasir 2011-06-16 00:50:56
如果你覆蓋你的索引,你會得到更好的性能。用(groupid,userid)創建一個唯一的索引 – 2011-06-16 01:00:17