SQL優化思路與解決方案
1.面對問題SQL的思考sql
- 這條查詢SQL的語句到底有沒有問題?
- 存在什麼問題? 什麼狀況下存在問題?
- 怎麼去優化?
2.SQL優化思路數據庫
- where查詢字段是否創建索引?
- 是否有創建索引可是查詢時候沒有用到索引,好比說 status != 1 這種查詢方式
- 若是有多個查詢條件,是否能夠使用聯合索引? (一個聯合索引就能夠解決不須要創建三個索引)
- 使用explain去發現問題
- 是否存在深度分頁問題? (在select * from查詢下若是分頁十萬條去取數據,將很是恐怖)
- 深度分頁問題能夠考慮使用子查詢(先將查詢數據的主鍵id查詢出來,在用in去查詢數據字段),主要由於回表問題
- 多條件查詢的時候,就是要將數據過濾到最小,因此要將檢索的字段順序排好
- 若是是分頁的接口對外暴露,必定要控制分頁的大小(50或者100)
- 若是是在操做sql進行統計,是否能夠異步? 創建專門統計表去處理,而不是每次查詢都在sql中操做一遍
- 若是查詢的sql比較復,使用了group by等多個關鍵字,會建立出多個臨時表,影響查詢效率
- 考慮數據庫參數配置優化
歡迎關注本站公眾號,獲取更多信息