我正在使用請求從10個表中選擇數據,並且最後我有WHERE和2個條件 第一個很簡單,但第二個很慢,即使有沒有結果返回。來自多個表的MySQL請求由於WHERE過濾器而變得緩慢
AND (eligible_users.id IS NULL OR
((eligible_users.program = 3 AND eligible_users.status = 0)
OR eligible_users.status = 35))
當我將其刪除,頁面加載速度快很多,有一些方法,使其更快,但仍保持這種過濾器,因爲我需要它。
你在查詢上運行EXPLAIN了嗎?它說什麼? – jasonbar
也許你需要在你的「狀態」列上有一個索引。你可以像這樣添加它:'CREATE INDEX status_index ON eligible_users(status);' –
另外,我第二個@jasonbar說的。 EXPLAIN的輸出將解釋你的查詢是如何評估的。它會告訴你,如果你在任何地方缺少索引。 –