您好,登錄后才能下訂單哦!
這篇文章主要介紹“mysql怎么優化”,在日常操作中,相信很多人在mysql怎么優化問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql怎么優化”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
針對這個問題,首先需要考慮該表記錄數是否還會增加,增量是多少,下面就這個面試主要介紹三個方面的優化
1、 索引優化 這里索引優化主要指的是,該表是查詢多還是新增修改多,這里會影響索引的創建,比如說新增、更新頻繁的,不能創建太多的索引,這會影響插入以及更新的效率,只需要創建關鍵字段的索引
2、分區 當表達到一定數量,為了保持查詢效率,就需要定時清理表中的數據,或者通過分區來提升查詢效率。先說說清理數據,delete肯定是很慢的,這里可以通過drop 分區來提升清理速度,查詢時通過分區字段來查詢指定分區數據,提升查詢效率
3、分表 記錄數很大,并且會增長,這里可以根據情況進行分表,分表與分區原理類似,不過遇到巨量數據并且增量巨大,可以考慮根據主業務字段分表,同時對表根據日期分區,這里舉個例子,比如說存儲每個省的業務日志數據,這里查詢時肯定是需要選擇省分,查詢總量意義不太大,這類可以考慮根據省分表,然后每張表根據日期來分區。
5、分庫 這里一般是數據安全考慮部署在不同的地域,或者需要要服務化,將不同業務拆分,進行分庫部署。這里就涉及到跨庫查詢的問題,如果是服務化,這里可以規范化,通過rest接口來交互。
1、查看執行計劃增加索引來提高效率
2、sql關鍵字優化
使用not exists代替not in,not in不會使用索引
查詢條件避免使用前導模糊查詢,如'%xxx',因為無法使用索引
查詢條件使用or的話,要保證or兩邊的列都要有索引,否則索引失效
字符串型字段為數字時,在where條件中要加單引號,否則索引失效(因為這樣MySQL會講表中字符串類型轉換為數字之后再比較,導致索引失效)
ISNULL判斷不走索引,要慎用
LIMIT分頁的頁碼不能太大,會查詢出所有的結果然后丟棄掉不需要的。使用主鍵做連接查詢
使用臨時表來替換in 或者exists
到此,關于“mysql怎么優化”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。