2012-07-24 21 views
-1

可能重複:
Which is faster/best? SELECT * or SELECT column1, colum2, column3, etcSELECT *或選擇特定的列

有沒有這樣做不是做SELECT specific_columns FROM table_name一個SELECT * FROM table_name的一個大的性能影響?

+2

不久的說,是的,有。聽你的長輩......:P – xandercoded 2012-07-24 21:36:46

+3

SELECT關鍵字後的列表選擇**列**而不是行。 – 2012-07-24 21:37:37

+1

在大多數情況下,沒有明顯的區別(即使很多人認爲它存在) – zerkms 2012-07-24 21:37:49

回答

0

我會建議使用EXPLAIN來找到最適合您需要的方法。我想這取決於你在表格中有多少列。

以下是MySQL的一些有用的網站解釋:

http://dev.mysql.com/doc/refman/5.0/en/explain.html

http://dev.mysql.com/doc/refman/5.0/en/using-explain.html

http://weevilgenius.net/2010/09/mysql-explain-reference/

+0

只有在特定情況下,'EXPLAIN'纔會有所不同。所以*一般*'EXPLAIN'對於兩者都是相同的 – zerkms 2012-07-24 21:40:55

0

只選擇你需要的東西!在開發過程中,我使用*,因爲當我不知道我需要什麼時它更容易,但在最終版本中,您應該具體。爲什麼不?

1

是的,它會影響性能,尤其是當您選擇多行時。 只選擇你真正需要的領域。


讓我們來簡單的用戶名所有腦幹檢查爲例:
爲什麼你會選擇一切,當你只能選擇ID?做這份工作,但只選擇一個領域是更好的解決方案。

SELECT `id` FROM users WHERE `username` = 'Nikola K.' 

而不是:

SELECT * FROM users WHERE `username` = 'Nikola K.'