0
我需要從MySQL表中取一個匹配簡單條件的隨機行。該表有一個主自動遞增的關鍵,所以這是我在做什麼:優化隨機mysql行取指性能
SELECT v FROM tbl WHERE pkey>$rand_num AND tiny_int_var=0 LIMIT 1
的原因,我在做pkey>$rand_num
代替pkey=$rand_num
是因爲我的自動遞增有洞的時候。有什麼辦法來優化這個查詢或獲取一個隨機行diff +更快?
您定義了哪些索引?特別是,你有''(tiny_int_var,pkey)''定義的複合類型嗎? – eggyal
我很確定你會得到同一行返回任何時候$ rand_num是相同的。 – AbraCadaver
@eggyal我實際上有(pkey,tiny_int_var)。在EXPLAIN中我已經注意到他只使用了pkey索引,儘管這個組合在possible_keys中。你認爲這會有幫助嗎?你如何確定它是(x,y)而不是(y,x)? – Noam