我正在執行查詢5 連接和一些wheres。解釋查詢是毫無意義的,但奇怪的部分來自where子句之一。MySQL需要太多的時間來執行不同的值
當我運行:... where foo in (2)
查詢需要0.5秒執行,結果集包含235行。
運行相同的查詢替換2與9 ... where foo in (9)
需要3,2(!)執行給我一個集合只有 151行。
在這一點上,我認爲來自第二個查詢的集合的大小或類似的東西。因此,我運行相同的查詢結合值:... where foo in (2,9)
和哦驚喜,查詢只用了0.7秒顯示一組386行(兩個查詢結果組合)。
發生了什麼事? MySQL在編號9時有問題嗎?我完全迷失在這裏。
在此先感謝
PS:我用PHP框架和ORM工作。當我發現查詢花費了很多時間時,我直接進入數據庫進行測試。上述結果來自這些測試。
列'foo'是索引嗎?如果不在該列上創建索引並重試。 –
是的,它是@ EasyJoin.net – viarnes
添加完整的查詢,也許在連接和你認爲毫無意義的事情並不那麼毫無意義。 –