在SQL中使用不同的命令是不是很好的做法?獨特的命令有什麼缺點嗎?使用不同的命令
使用不同的命令
回答
它完全取決於您的使用案例。 DISTINCT
在某些情況下很有用,但可能會被過度使用。
缺點主要是增加查詢引擎執行排序的負載(因爲它需要將結果集與自身進行比較以刪除重複項),並且它可以用來掩蓋數據中的問題 - 如果您正在重複您的源數據可能存在問題。
該命令本身並非天生好或壞。你可以使用螺絲刀敲擊指甲,但這並不意味着這是個好主意,或者螺絲刀在任何情況下都不好。
它是語言的一部分,所以應該使用。
有些情況下使用DISTINCT
可能會導致表掃描,否則不會發生。
您將需要測試每個自己的用例,以查看是否會產生影響並在影響不可接受時找到解決方法。
如果您希望確保結果不同於SQL計算機上SQL服務器內部的結果,請使用它。如果您不介意將額外結果發送給客戶端並在那裏執行工作(以減少服務器負載),那麼請執行此操作。這取決於您的性能要求和數據庫的特性。
例如,如果明顯會減少結果集的可能性非常小,並且您沒有將索引列設置爲正確的列以使其更快,並且您需要減少SQL Server負載,並且您有備用週期客戶端,並且很容易確保客戶端的獨特性 - 那麼您可能需要這樣做。
這是很多ifs,ands和mights。如果你不知道 - 就使用它。
從這個http://www.mindfiresolutions.com/Think-Before-Using-Distinct-Command-Arbitarily-1050.php
有時它是如果初學者得到了一些重複他們的結果集,然後他們使用DISTINCT看到。但是這有它自己的缺點。
顯着降低查詢的性能。因爲正常的過程是對結果進行排序,然後移除 等於緊接之前的行。
DISTINCT比較記錄的所有字段。所以DISTINCT增加計算。
如果你需要經常使用它來獲得正確的輸出,那麼你有一個設計或JOIN問題
這是完全合法的使用說明。
雖然這是一種聚合:相當於所有輸出列上的GROUP BY。所以這是一個額外的步驟是查詢處理
- 1. 使用sql命令不止一次使用不同的命令
- 2. 不同的命令
- 3. 使用RelayCommand將不同的命令參數傳遞給相同的命令WPF
- 4. 使用POW時MySQL命令不同步()
- 5. 使用不同的設置編譯在不同的命令
- 6. 轉換一個命令到不同的命令用不同的參數
- 7. 在不同視圖模型中調用不同命令的單個命令
- 8. 如何對不同的目標使用相同的命令?
- 9. 不同的行爲命令
- 10. MySQL的「命令不同步」
- 11. mysqli的命令不同步
- 12. 不在gnuplot的相同的字體使用命令行或gnuplot的命令時
- 13. SQL命令可以在同一命令行中使用,但可以在兩個不同的表上使用
- 14. 不同的命令提示窗口中不執行相同的命令
- 15. 命令在調用存儲過程時不同步命令Mysql
- 16. 使用dock命令使用aws命令
- 17. 使用split命令使用slice命令?
- 18. HDBC-mysql「命令不同步」
- 19. 如何使用Redis lua腳本調用不同參數的不同命令
- 20. 使用不同的名稱從命令行調用紅寶石
- 21. 不能使用命令行
- 22. 簡單的噴油器使用不同的裝飾器爲不同的命令
- 23. 在不同位置應用不同的命令
- 24. ssh命令引用有什麼不同?
- 25. 命令和命令參數的不同Datacontext
- 26. 命令行工作,在Makefile中同樣的命令不是
- 27. 運行tracert命令在命令1 140次不同的主機
- 28. 如何同時使用AWS命令行
- 29. docker-compose不覆蓋使用啓動命令的命令
- 30. 修改rake db命令以使用不同的mysql引擎
使用_select_命令是否有任何缺點?如果你需要它,使用它。 – 2011-04-12 19:43:41
那麼如果你相信CJ Date有什麼要說的話,你應該總是爲了正確而應用它,但是他似乎並不喜歡SQL ...... – 2011-04-12 22:07:17