百萬mysql查詢優(yōu)化,如何優(yōu)化數據庫?
謝邀~
大概總結一下數據庫優(yōu)化的一些方法,主要是面向程序員的,從DBA的角度如何優(yōu)化數據庫的問題在這里不討論(因為...我不知道):
減少磁盤訪問我們都知道,磁盤的讀取速度是很慢的,很多時候數據庫訪問的瓶頸都在這里。而減少磁盤訪問的主要方法有:
合理使用索引:這里要注意避免索引失效;
只通過索引訪問數據:合理使用索引的升級版;優(yōu)化SQL執(zhí)行計劃;減少網絡傳輸分頁查詢:不同的數據,SQL語句分頁的寫法不相同,就不在這里舉例了;
只返回需要的字段,盡量減少這樣的寫法:select * from table;
減少CPU開銷使用綁定變量(避免硬解析);
合理使用排序;
減少比較操作;減少CPU中的計算;
減少交互次數批量提交,要更新一萬條數據的時候,避免一萬次與數據庫發(fā)生一萬次操作,而是只提交一次。
合理的使用存儲過程(當然有時候也會造成業(yè)務邏輯被寫在不同的地方);
使用游標處理結果記錄;
增加更多資源這個最好理解吧,加資源唄,這個是成本最高,不過效果卻不一定高的方法。
我將持續(xù)分享Java開發(fā)、架構設計、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關注。