2015-09-07 72 views
0

下面有一個mysql Person表。編號是主要的,編入索引。但其他各列沒有索引..在哪裏``條件計數影響在mysql中選擇速度?

id   name   surname   age   city   branch 
1   John   Black   34   London  driver 
2   Lara   Croft   28   New York  teacher 
3   Ahmad  Hasan   41   Doha   doctor 
... 
1000.000...... 

我的問題是,當我做與多個條件where條款執行select查詢,它降低速度選擇。
例如哪一個更快?

Select * From Person Where age > 30 

Select * from Person Where age > 20 AND city = 'London' AND name = 'John' AND branch = 'doctor' AND ... 

你能告訴我哪一個會更快?

+1

根據您的數據和索引,如果可以使用更好的索引,後者可能會更快。 – vhu

回答

1

沒有索引,任何WHERE子句都會導致表掃描。也就是說,爲了滿足查詢,服務器必須檢查表中的每一行。因此,您顯示的搜索操作按照相同時間的順序進行。

從MySQL服務器向客戶端發送大型結果集也需要時間。結果集中較少的行可以更快地滿足您的查詢。

專業提示:在大約100行長的表上處理時,避免使用SELECT *。而是給出你實際需要的列的名字。