Mysql查詢調優記錄
1、mysql會自己根據語句和資料的範圍決策出使用的索引,mysql會自己使用最合適的索引,where 後面的欄位順序無需與聯合索引一致。Mysql的查詢優化器會使用統計資料預估使用各個索引的代價(COST),與不使用索引的代價(COST)比較。Mysql會選擇代價最低的方式執行查詢。
2、能建立唯一索引儘量建立unique index,這樣能避免很多問題
3、不能建立類似於a_b和b_a兩個索引,可能會引起死迴圈,需要注意
4、如果有a_b的聯合索引,是不需要再單獨建立一個a的索引
5、寫程式碼的時候需要注意先explain sql語句,避免慢查詢,到了千萬級的資料時一個幾百ms的select也能拖垮整個資料庫,所以寫select的時候需要注意是否使用索引
6、mysql的limit offset,limit,在offset很大時,mysql是先把offset+limit資料查詢出,在取最後limit的資料,所以在進行寫翻頁sql時,需要注意深分頁的問題,能根據自增id偏移翻頁最好,如果不行的話,可以使用子查詢的方式,先把自增id查出來,再根據自增id查詢出你需要的欄位,避免在深分頁到最後取出太多的資料
7、儘量使用索引排序,如果沒有任何索引能達到你想要的排序效果,儘量控制排序的數量,避免大量的資料進行filesort,實在不行,將排序在程式碼裡進行排序,不要在大量的排序工作交給資料庫,因為會拖垮資料庫
8、儘量不要在mysql裡使用like來進行模糊查詢,首先mysql只有右模糊查詢支援走索引,另外mysql模糊查詢效率也比較低,可以通過elasticsearch來多條件模糊查詢
9、回表去查詢所需的資料意思就是你查詢的欄位光索引欄位不夠,需要根據索引查詢行資料,最後再提取出你需要的欄位
10、索引不是也多越好,索引多縱然提高了select的效率,但是同時降低了insert和update的效率,如果存在大量不同維度的查詢,建議改走elasticsearch
11、mysql裡資料型別的查詢效率比varchar效率高,所以儘量不要儲存字串到資料庫,列舉都轉化成對應的id儲存
12、程式碼裡強制不要用select *,第一降低了查詢效率,因為會返回大量無用的資料,第二也會因為增減表欄位導致程式碼異常
13、不要向客戶端返回過多的資料,資料傳輸可能就花費大量的時間,一般查過1000就分頁查詢
14、不要提交大事務,比如一次提交1000條update的事務。
15、mysql在物理硬體條件不考慮的情況下,單表能支援千萬級別的資料快速讀取,如果錶行數到了億級別,需要考慮是否有必要進行shading分庫分表。
相關文章
- MySQL調優之查詢優化MySql優化
- [Mysql 查詢語句]——查詢指定記錄MySql
- mysql 隨機查詢記錄MySql隨機
- SQL Server DBA調優日記(一)——大資料量查詢記錄數優化及原理探討SQLServer大資料優化
- MySQL函式查詢目錄樹問題記錄MySql函式
- MySQL 查詢所有表中的記錄數MySql
- MySQL查詢優化MySql優化
- MySQL慢查詢記錄原理和內容解析MySql
- 自動記錄MySQL慢查詢快照指令碼MySql指令碼
- mysql 查詢記錄數大於一千萬的表MySql
- MySQL 的查詢優化MySql優化
- MySQL 慢查詢優化MySql優化
- MySQL優化COUNT()查詢MySql優化
- mysql查詢優化檢查 explainMySql優化AI
- [MySQL] - 聯表查詢,查詢一個不在另一個表的記錄MySql
- GC調優記錄(一)GC
- java效能調優記錄Java
- 我如何調優SQL Server查詢SQLServer
- 查詢鎖表記錄
- TiDB 查詢優化及調優系列(四)查詢執行計劃的調整及優化原理TiDB優化
- MySQL查詢優化利刃-EXPLAINMySql優化AI
- MySQL索引與查詢優化MySql索引優化
- MySQL分頁查詢優化MySql優化
- mysql關聯查詢優化MySql優化
- MySQL——優化巢狀查詢和分頁查詢MySql優化巢狀
- java效能調優記錄(限流)Java
- 慢查詢分析調優工具~mysqldumpslowMySql
- 慢查詢分析調優工具~show profile
- hive查詢注意事項和調優Hive
- oracle效能優化(二)-調整查詢Oracle優化
- 提高mysql查詢效率及一些使用技巧記錄MySql
- 記錄 sql 查詢日誌SQL
- SQL重複記錄查詢SQL
- Linux下mysql配置慢日誌查詢,把查詢慢的sql記錄下來LinuxMySql
- 【資料庫】MySQL查詢優化資料庫MySql優化
- Mysql 慢查詢優化實踐MySql優化
- 十七、Mysql之SQL優化查詢MySql優化
- MySQL: 使用explain 優化查詢效能MySqlAI優化