日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 执行计划不对_关于mysql主从查询执行计划不一致问题的分析

發布時間:2024/9/15 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 执行计划不对_关于mysql主从查询执行计划不一致问题的分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近面試過程中被面試官拋了一個問題,說曾經有一個線上出現的奇怪的問題,主庫和從庫各種配置是一致的,當數據量比較大的時候,某些時候同樣的查詢,在從庫里的執行計劃執行成功了,而主庫里沒有執行這個執行計劃,問我這是為什么?

當時我的回答是主庫偏重于寫數據,從庫偏重于讀數據,既然mysql的查詢語句執行計劃是有可能改變的說明mysql的語句執行計劃是可能隨著數據的變化而發生調整的,如果分析是認為原定執行計劃沒有成功執行,那么我們可以對執行計劃進行控制,也許自己可以進行配置。答案明顯是錯的,我只是根據自己對問題的理解進行了想法的闡述。

那么真正的情況如何呢?其實答案就是隱藏在那些理所當然的思路的背后。眾所周知,mysql的索引不能建的太多,因為mysql在數據增刪比較頻繁的情況下需要花費大量資源進行重建索引。而mysql有協調機制,如果一段時間內數據量變化較大,會將調整索引的計劃推遲,直至判斷數據變化不大的時候才會去重建索引。所以這就造成了,mysql在評判不同的執行計劃的時候,如果突然新增的數據量很大,不走索引反而比走索引所花費的時間更短,就相應的將執行計劃調整為不走索引。

因此,在數據量變化較大的時候進行主庫查詢,其實可以對應先判斷一下不同執行策略所耗費的時間,如果走索引耗費的時間更長,說明索引沒有重建完成,可以進行手動重建索引,然后再進行判斷執行計劃之間的時間差異。之后mysql的執行計劃選擇器自然會判斷出正確的執行計劃。

總結

以上是生活随笔為你收集整理的mysql 执行计划不对_关于mysql主从查询执行计划不一致问题的分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。