mysql查询优化count(*)-查询记录总条数(一)
生活随笔
收集整理的這篇文章主要介紹了
mysql查询优化count(*)-查询记录总条数(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
計算表記錄總量最直接的方法就是使用count()
比如:select count(*) from 表名;
也有人喜歡這么寫:
select count(字段名) from 表名;
這兩種寫法都可以得到結果,不過效果略有不同。
count(*)一定返回的是表記錄總量
count(字段名)返回的是該字段不為null值的記錄總量。它有可能跟count(*)相等,也可能不等。
所以要慎用count(字段名)這種寫法。
在表記錄較多的情況,count(*)執行時間會較長。例如我公司有一張表內數據1億條,執行時間47秒。
在生產環境這非常可怕。因為這一慢查詢的執行,可能引起其他sql的效率低下,有可能引起鏈式反應像核爆炸那樣耗盡服務器資源。
我們盡量要在生產環境避免這類語句執行。如果一定要,那么在滿足一定條件下可以使用下面的小技巧來優化。
第一個條件是該表擁有自增長字段,并定義為主鍵。
第二個條件是該表不刪除記錄或只從頭部刪除數據。即保持表內記錄的連續性。
滿足以上條件,我們就可以使用下面的語句來替代count
總結
以上是生活随笔為你收集整理的mysql查询优化count(*)-查询记录总条数(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 破解Access(*.mdb)目前所有版
- 下一篇: 36、有效的数独 | 算法(leetod