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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql普通标转分区表_MySQL分区表到普通表互转

發布時間:2023/12/4 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql普通标转分区表_MySQL分区表到普通表互转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于最近總有人抱怨,數據遷移后執行SQL變慢,經過查看原來是分區導致的問題。原分區根據按月設置RANGE分區,

看到這圖的時候也許有人就會發現問題.......

業務查詢SQL:

從SQL上看 執行計劃確實是走了分區,但為什么沒有命中索引呢,在圖1的里有聯合索引(idx_reportDate_groupID_shopID_saasOrderKey)

##解決問題思路

1、若強制指定走索引,確實是快的,掃描的行數也掃了

但由于業務修改比較麻煩,被要求要和其他庫統一索引,繼續不管....找問題先......

解決問題2:

猜測可能是表統計信息和碎片引起的,通過dump 還原操作,結果還是一樣沒解決問題......

解決問題3:

SQL查詢1號到10號跨的時間段比較長,難道是優化器問題.....理論了解不多....繼續找問題

先把SQL 簡單化查詢操作 如select * from ....操作

發現效果還不錯,此時修改查詢時間范圍。按業務查詢的SQL看看

發現問題了,按理應該是在P27分區,怎么掃了這么多分區,這就能和第1圖定義的分區有關系了,定義分區出了問題,到這算真正找到問題了。

開始解決問題:

目前應該想著怎么對3000W 表重構分區,而且不能刪除原來數據都要保留著

方法1:

對于小表執行ALTER 操作:alter table table_name remove partitioning; ?##移除分區,鎖表

線上可以使用pt-osc工具來移除分區,不影響業務

pt-online-schema-change -u load_data -h 192.168.21.113 -p root123 -P 3306 --alter=" REMOVE PARTITIONING" D=test,t=tbl_saas_order_food --charset=utf8 --no-version-check ?--statistics --critical-load="Threads_running:200" --max-load="Threads_running=25" --print --execute

發現一移除分區查詢瞬間變快

圖索引剛加,在沒這個索引 也可使用令一索引

重構分區:

小表自行alter table tabe_name?PARTITION BY range(sid)(PARTITION p1512 VALUES LESS THAN (20160101),

PARTITION p1601 VALUES LESS THAN (20160201),.........,PARTITION p888666 VALUES LESS THAN MAXVALUE)

大表:PT-OSC,如圖

重構分區后,執行計劃

其他驗證,是否指定分區:

總結

以上是生活随笔為你收集整理的mysql普通标转分区表_MySQL分区表到普通表互转的全部內容,希望文章能夠幫你解決所遇到的問題。

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