我想知道,什麼是最快(或最輕的數據庫處理)哪個更快:「SELECT * FROM table」或「SELECT x,y,q FROM table」(來自具有4個字段的表)
比方說,db表中有4個領域:X,Y,Z,q
我只需要3:X,Y,q
什麼方式最快/最簡單的數據庫來執行(使用PHP).. 「SELECT * FROM table」或「SELECT x,y,q FROM table」?
如果表中有5個或更多的字段,我仍然只需要選擇3,這同樣適用嗎?
我想知道,什麼是最快(或最輕的數據庫處理)哪個更快:「SELECT * FROM table」或「SELECT x,y,q FROM table」(來自具有4個字段的表)
比方說,db表中有4個領域:X,Y,Z,q
我只需要3:X,Y,q
什麼方式最快/最簡單的數據庫來執行(使用PHP).. 「SELECT * FROM table」或「SELECT x,y,q FROM table」?
如果表中有5個或更多的字段,我仍然只需要選擇3,這同樣適用嗎?
在大多數數據庫中,*比指定字段慢。
儘管它們很多,但將所有列放在一起也是一種很好的編程習慣。
爲什麼這是一個很好的做法? – mowgli
@mowgli這是一個很好的做法,有幾個原因。 1)它能夠更好地識別你實際使用的查詢結果中的數據,2)由於'*'將檢索所有列的數據,如果將來有人在你的表中增加200個額外的列,你會突然必須處理200倍的數據傳輸,這將**影響**你的**性能,即使他們的工作與你的查詢無關。基本上它是最少訪問或最小特權的原則(http://en.wikipedia.org/wiki/Principle_of_least_privilege) –
SELECT x,y,q FROM table
總是比select *
更快,因爲您沒有閱讀所有字段,但提及SELECT x,y,q,z FROM table
和select *
會具有相同的效果表現。
按最基本的邏輯思考。你有一個不同種類的球包。有人想打籃球和排球。你可以拿出籃球和排球,然後把剩下的放在包裏。或者,您也可以將整個袋子倒空,取出籃球和排球把它們交出來,剩下的就放下。哪一個會更容易? – TheDeadLike