2015-07-13 73 views
0

WHERE條款中是否提供了多個過濾條件 - 減少了搜索時間,或者像它一樣,因爲它一次處理多個過濾器,它會增加所需的處理量,從而增加執行時間?MySQL - 過濾條件增加會增加查詢執行時間嗎?

E.g.

SELECT * FROM TABLE_NAME其中此= foo和那巴=

SELECT * FROM TABLE_NAME其中此= FOO

+0

取決於很多因素,無論哪種方式都可以。人看到的過濾器可以變成慢速掃描。 – Drew

+0

你能否指點我可以閱讀更多內容的資源?感謝您回覆:) – Rishant

+0

http://stackoverflow.com/questions/12925140/how-to-estimate-sql-query-timing – Drew

回答

1

一般而言,您描述的查詢花費的時間量取決於讀取數據的I/O時間和返回結果集的時間。用於確定記錄是否在結果集中的時間量與讀取和返回記錄的時間相比可以忽略不計。

這是一般性概述。如果你在where子句中有索引,那麼這兩個構造基本上是相同的。對於第二個鍵的比較,可能會有非常少量的額外開銷,但這對於真實世界的應用程序並沒有什麼不同。

與一般情況的另一個不同點是,當比較需要很長時間。這可能是由於like在大型文本字段或複雜的用戶定義函數上造成的。在這種情況下,比較可能會有所作爲。

更基本的是,查詢做了不同的事情。在擔心神祕的表現特徵之前,你應該表達你真正需要的查詢。例如,在數據庫中進行過濾通常要比將數據帶回應用程序並在那裏過濾好得多。