2015-11-06 48 views
0

好吧,我們假設我有一張帶有1k +記錄的大表,並且我需要從中獲取三條記錄。現在,我們假設沒有符合條件的記錄。通過使用相同的條件執行COUNT(*),然後在計數大於零的情況下執行SELECT操作時,我是否通過確保在執行SELECT之前有可用的記錄來加快查詢速度,或者這只是浪費時間?COUNT(*)使事情變得更快嗎?

+0

運行相同的搜索兩次會如何更快? –

+0

總是選擇只需要的列是好的,如果你想要的只是計數,因爲它需要處理更少的數據。 [從ttt選擇count(column1)] –

+1

我看不出如何。它必須在桌面上執行相同的工作,因爲當您執行普通的'SELECT'時,現在您正在運行兩個查詢而不是一個查詢。 – Barmar

回答

0

這是事物總體方案中的一個小表。您應該直接查詢您的過濾結果,並且如果您在未返回結果時需要在應用中執行一些不同的操作,只需檢查返回的行數即可跳過嘗試處理結果集。

永遠不會有這樣一種情況,即COUNT()方法執行得更好,因爲它會執行完全相同的查詢邏輯。

+0

謝謝你解釋。我使用了一個名爲phpBB的腳本,它迫使我在查詢之前始終執行計數,所以我的頭腦中有這樣一個神話,即在查詢始終是正確的方式之前執行COUNT(*)。很高興看到它不是。 – user3052587

相關問題