可能重複:
Why is SELECT * considered harmful?SELECT * SQL查詢VS選擇特定的列SQL查詢
可能是一個數據庫noob問題。
我們的應用程序有一個表像下面的
表WF
Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| children | text | YES | | NULL | |
| w_id | int(11) | YES | | NULL | |
| f_id | int(11) | YES | | NULL | |
| filterable | tinyint(1) | YES | | 1 | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
| status | smallint(6) | YES | | 1 | |
| visible | tinyint(1) | YES | | 1 | |
| weight | int(11) | YES | | NULL | |
| root | tinyint(1) | YES | | 0 | |
| mfr | tinyint(1) | YES | | 0 | |
+--------------------+-------------+------+-----+---------+----------------+
此表有望成爲向上千萬的記錄。該架構預計不會有太大變化。我需要檢索列f_id,兒童,狀態,可見,重量,根,製造商。
哪種方法對數據檢索更快?
1)Select * from WF where w_id = 1 AND status = 1;
我將剝離在應用層的不必要的列。在查詢
2)Select children,f_id,status,visible,weight,root,mfr from WF where w_id = 1 AND status = 1;
沒有必要剝去不必要的列作爲其預先選定的。
有沒有人有一個真實的生活基準,哪個更快。我知道有些人說Select *是邪惡的,但是當試圖獲得整個塊時MySQL會反應更快,而不是檢索選擇性列?
我使用MySQL版本:5.1.37-1ubuntu5(Ubuntu),應用程序是Rails3應用程序。
你是擁有1000萬記錄表的人;你能獲得比你的基準更多的現實生活嗎? – JeffO 2011-02-16 18:31:26
我正在向Rails進行遷移。我沒有獲得目前的生產。從技術上講,我現在沒有數據。 – papdel 2011-02-16 18:32:50