可能重复:
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