在設計SQL查詢時,選擇整行(select *)還是隻選擇所需的字段會更快?如果結果反饋給另一個查詢(例如自然連接)會怎麼樣?簡單的SQL查詢性能問題
1
A
回答
7
只選擇你需要的字段通常會更快 - 特別是如果這些字段被索引「覆蓋」,以便數據庫只需要從索引而不是從主表中加載數據(從而允許它獲取更少的頁面)。
3
只選擇你所需要的更快,這適用於列和where子句。
0
選擇你需要的字段更快,因爲它帶來的數據更少。這是提高查詢性能速度的一般建議。
-2
如果您多次訪問表格,選擇所有列的速度會更快,並且具有更多硬解析的開銷比選擇更多列的開銷要大。
E.g.可以說你有一個表foobar列a..c,所有的CHAR(1);然後陳述
SELECT a,b,c FROM foobar;
SELECT a,b FROM foobar;
SELECT a,c FROM foobar;
SELECT a FROM foobar;
SELECT b,c FROM foobar;
SELECT b FROM foobar;
SELECT c FROM foobar;
下列順序可能會比執行
SELECT * FROM foobar;
七次慢。
1
在將來添加列時,SELECT *會特別危險。假設你有一個需要UserID和LastLogon日期的例程。最後你在桌面上添加一個UserNotes文本列和Bang!這個小程序現在也會拉動一些文本數據,整個應用程序的性能將會下降,並且整個應用程序中的每個Select語句都需要修復才能解決問題!
只需選擇應用程序需要的列:)
相關問題
- 1. 簡單查詢的性能問題
- 2. 簡單查詢性能問題
- 3. SQL簡單查詢問題
- 4. SQL查詢簡單問題子查詢
- 5. SqL查詢性能問題
- 6. SQL查詢性能問題
- 7. SQL查詢性能的簡單聯合
- 8. SQL查詢簡單的問題
- 9. 簡單的sql查詢問題
- 10. wordpress中的簡單SQL查詢問題
- 11. 簡單的SQL問題與子查詢
- 12. 簡單的SQL查詢問題
- 13. Azure的SQL查詢性能問題
- 14. CTE SQL Server查詢的性能問題
- 15. Mongodb性能問題與簡單的搜索查詢
- 16. MySQL性能問題與簡單的查詢
- 17. SQL連接查詢性能問題
- 18. SQL子查詢性能問題
- 19. T-SQL查詢超時/性能問題
- 20. SQL Server查詢性能問題
- 21. SQL Server查詢性能問題
- 22. MySql查詢簡單問題
- 23. 簡單ASP查詢問題
- 24. 涉及子查詢的SQL Server查詢 - 性能問題
- 25. 簡單的MySQL的子查詢性能
- 26. Oracle查詢性能問題
- 27. Neo4j查詢性能問題
- 28. 查詢性能問題
- 29. 查詢性能問題
- 30. 查詢性能問題
我會謹慎對待有關WHERE子句的一般性陳述。可能會出現邊界情況,使WHERE子句導致非常奇怪的訪問路徑,這可能比讀取整個表更慢。我不認爲這會發生在限制列。 – Thilo 2009-11-12 09:21:02
一致。但總的來說,限制返回的數據是一種更好的方法。 – 2009-11-12 09:33:53