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

由于最近总有人抱怨,数据迁移后执行SQL变慢,经过查看原来是分区导致的问题。原分区根据按月设置RANGE分区,

e88d753798a8fff90f5e71f24838ac3a.png

看到这图的时候也许有人就会发现问题.......

业务查询SQL:

1bbda511e06624340f565a6b7ac0e4aa.png

从SQL上看 执行计划确实是走了分区,但为什么没有命中索引呢,在图1的里有联合索引(idx_reportDate_groupID_shopID_saasOrderKey)

##解决问题思路

1、若强制指定走索引,确实是快的,扫描的行数也扫了

f00823b94035c7f2c7b97d809f0d97bd.png

但由于业务修改比较麻烦,被要求要和其他库统一索引,继续不管....找问题先......

解决问题2:

猜测可能是表统计信息和碎片引起的,通过dump 还原操作,结果还是一样没解决问题......

解决问题3:

SQL查询1号到10号跨的时间段比较长,难道是优化器问题.....理论了解不多....继续找问题

先把SQL 简单化查询操作 如select * from ....操作

6e5984a135b39556619de2975c8532f3.png

发现效果还不错,此时修改查询时间范围。按业务查询的SQL看看

c8312f1f85ac2ab2978b37230dbb17a8.png

发现问题了,按理应该是在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

发现一移除分区查询瞬间变快

c36759e26a478a0cdb4d36a4a2bb17b2.png

图索引刚加,在没这个索引 也可使用令一索引

重构分区:

小表自行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,如图

29ded0fcb562c069a9a20fbb9883422e.png

重构分区后,执行计划

4ca53c445c4f7ef59aadbec78b947aed.png

其他验证,是否指定分区:

d8299b9ee136e3b3e5cb7d449d494edc.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++标准库中,含有链表的类list

Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.STL中 end()指向的总是无效值,取值都用迭代器,用法跟指针差不多。assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个…

读懂路由表

教你读懂路由表源码:--------------------------------------------------------------------------------Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.16…

C# 用IrisSkin4.dll美化你的WinForm

1. 将IrisSkin4.dll动态文件导入当前项目引用中。具体操作为:解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin4.dll文件,然后加入即可。建议,最好把IrisSkin4.dll文件放在当前项目\bin\Debug文件中…

SpringMVC中的文件上传

这是用的是SpringMVC-3.1.1、commons-fileupload-1.2.2和io-2.0.1 web.xml文件 <?xml version"1.0" encoding"UTF-8"?> <web-app version"2.5" xmlns"http://java.sun.com/xml/ns/javaee" xmlns:xsi"http://www.w3.o…

JavaScript对象、JSON对象、JSON字符串的区别

一、首先看下什么是JSON JSON&#xff1a;JavaScript Object Natation&#xff0c;JavaScript对象的表现形式&#xff0c;已经发展成一种轻量级的数据交换格式。 JavaScript对象的表现形式&#xff0c;指定义JS对象的一种方式。数据交换格式&#xff0c;即用于交换的数据格式。…

全球最大油田、金矿、煤矿、铁矿、铜矿,究竟哪个最值钱?

全世界只有3.14 % 的人关注了爆炸吧知识1世界上最大油田&#xff1a;沙特加瓦尔油田&#xff08;Ghawar Oil field&#xff09;加瓦尔油田位于沙特阿拉伯东部&#xff0c;首都利雅得以东约500km处&#xff0c;它探明的石油可采储量为114.8亿吨&#xff0c;天然气储量9240亿立方…

JavaScript自动设置IFrame高度(兼容各主流浏览器)

调用方式如下 <iframe id"ifm" name"ifm" οnlοad"SetIFrameHeight(ifm)" src"http://www.qq.com" /> function SetIFrameHeight(down) {var Sys {};var ua navigator.userAgent.toLowerCase();var s;(s ua.match(/msie ([\…

MVC3快速搭建Web应用(二)

easyui与mvc的结合 上一篇文章发布后&#xff0c;自己又仔细读了数遍&#xff0c;感觉一是文笔太差&#xff0c;二是描述逻辑比较混乱&#xff0c;客观原因是涉及到东西其实蛮多的&#xff0c;那三个步骤不可能在一篇短短的文章中就可以描述清楚。此篇笔者将尽量更加详尽一些。…

如何通过 .NETCore 获取 Linux,Mac 的硬件信息?

咨询区 Pascal Jackson&#xff1a;请问我如何通过 .NET Core 去识别 Linux/Mac 电脑上的硬件信息&#xff1f;在 windows 上我可以通过 System.Management 下 WMI Query 很容易获取&#xff0c;比如下面的代码&#xff1a;ManagementObjectSearcher searcher new ManagementO…

KVM 虚拟机自动克隆脚本

#!/bin/sh#----------------------------------## virt-clone auto script[虚拟机自动克隆脚本]# create by xuekun# date 2015-12-26# 开源人#----------------------------------## Source function library.. /etc/rc.d/init.d/functions#SOUR_SERVER$1DIRE_SERVER$2IP_ADDR…

SpringMVC整合Shiro

这里用的是SpringMVC-3.2.4和Shiro-1.2.2&#xff0c;示例代码如下 首先是web.xml <?xml version"1.0" encoding"UTF-8"?> <web-app version"2.5"xmlns"http://java.sun.com/xml/ns/javaee"xmlns:xsi"http://www.w3.o…

这个发热鞋垫厉害了,有它冬天再也不怕脚冷

▲ 点击查看冬天一到&#xff0c;小爆发现身边的“抖友”又开始上线了&#xff01;至于为什么会抖脚&#xff1f;有盆友说&#xff0c;当然不是真的想抖&#xff0c;而是因为脚太冷冷冷了&#xff01;有时候穿了棉袜厚鞋&#xff0c;脚都是冷冰冰的&#xff0c;感觉就像踩在冰窟…

.NET 6新特性试用 | 热重载

前言在以前的开发模式下&#xff0c;我们修改代码后必须重新编译、重新运行才能看到效果。而热重载提供了这样一种特性&#xff0c;它允许你在项目正在运行时修改代码&#xff0c;并将代码更改立即应用于正在运行的应用程序上。热重载的目的是尽可能节省编辑之间的应用重启次数…

加速你的Hibernate引擎(上)

为什么80%的码农都做不了架构师&#xff1f;>>> 1.引言 Hibernate是最流行的对象关系映射&#xff08;ORM&#xff09;引擎之一&#xff0c;它提供了数据持久化和查询服务。 在你的项目中引入Hibernate并让它跑起来是很容易的。但是&#xff0c;要让它跑得好却是需…

WSUS服务器的建立以及客户端发布

http://yuelei.blog.51cto.com/202879/81676转载于:https://blog.51cto.com/439810/909642

Spring MVC 中 HandlerInterceptorAdapter过滤器的使用

一般情况下&#xff0c;对来自浏览器的请求的拦截&#xff0c;是利用Filter实现的&#xff0c;这种方式可以实现Bean预处理、后处理。 Spring MVC的拦截器不仅可实现Filter的所有功能&#xff0c;还可以更精确的控制拦截精度。 Spring为我们提供了org.springframework.web.s…

7部必看的纪录片,每一部都堪称经典,让人叹为观止!

全世界只有3.14 % 的人关注了爆炸吧知识纪录片的一大重要意义&#xff0c;就在于它能将我们的视野和脚步&#xff0c;引向我们无法企及的地方和领域&#xff0c;又能让那些我们曾经到过的地方、经历过的人事&#xff0c;变得更有深意。今天&#xff0c;就给大家分享7部顶级纪录…

通过SQL Server操作MySQL的步骤和方法

在多种数据库环境下&#xff0c;经常会遇见在不同数据库之间转换数据和互相进行操作的情况。以下简要介绍下用SQL Server操作MySQL的步骤和方法。 1 操作前的准备 1.1 安装MySQL驱动 想要在SQL Server中操作MySQL&#xff0c;首先要在SQL Server所在的服务器上安装MySQL的驱动。…

ubuntu 新增mysql用户_Ubuntu中给mysql添加新用户并分配权限

一.Ubuntu下启动mysql方法&#xff1a;/etc/init.d/sudo mysqld二.用户添加bingt;mysql -u rootmysqlgt; grant 权限1,权限2,...权限n on一.Ubuntu下启动mysql方法&#xff1a;/etc/init.d/sudo mysqld二.用户添加bin>mysql -u rootmysql> grant 权限1,权限2,...权限n on…

ABP Framework 5.0 RC.1 新特性和变更说明

.Net 6.0 发布之后&#xff0c;ABP Framework 也在第一时间进行了升级&#xff0c;并在一个多星期后&#xff08;2021-11-16&#xff09;发布了 5.0 RC.1 &#xff0c;新功能和重要变更基本已经确定。5.0版本新特性5.0版本新特性列表&#xff1a;•静态 C# 和 JavaScript 客户端…