SQL優化案例150811

http://blog.csdn.net/robinson1988/article/details/9054717

 

最近遇到個SQL 跑的很慢,第一次12秒出結果(從磁盤讀入內存),第二次2秒出結果(數據都在buffer cache裏面),SQL代碼如下

 

  1. SELECT COUNT(0) FROM P LEFT JOIN R ON P.ID = R.ID;  


P 有200W 數據 R 有 100W 數據。這個SQL 第一次跑12秒,肯定無法接受。 那麼大家看看這個SQL如何優化?

 

其實這個SQL寫得有問題, 這裏是外連接,並且求COUNT(*) 還有,JOIN字段是ID,ID 一般都是主鍵,那麼這個SQL完全可以改寫 爲

 

  1. SELECT COUNT(0) FROM P;  

 

改寫之後 COUNT(*) 直接讀取 P表主鍵,0.1秒--1秒出結果,當然了,請注意,如果R表ID不是主鍵,並且R表ID 有重複值,COUNT(*) 會變大 ,不能這麼改寫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章