开发者社区> 问答> 正文

MySQL迁移后性能变差。

已解决

MySQL迁移后性能变差。

展开
收起
阿里云服务支持 2022-11-01 10:41:26 1361 2
29 条回答
写回答
取消 提交回答
  • 官方回答

    一、所有请求都慢

    1、确认源实例和目标实例的规格,是否一致,排除实例规格的影响

    2、连续执行两次同一个SQL,是否一直都慢,排序物理读的影响

    3、查看物理机监控是否有异常

    4、查看CPU、IOPS、内存、锁监控,是否有异常

    5、show processlist查看会话status是什么状态,是否有明显的异常

    二、部分请求慢

    1、确认源实例和目标实例的规格,是否一直,排除实例规格的影响

    2、连续执行两次问题SQL,是否一直都慢,排序物理读的影响

    3、对比分析源实例和目标实例问题SQL的:执行计划,SQL涉及表的表结构,索引信息、query_cache_type是否有区别

    4、查看锁监控/show processlist,是否有锁导致的

    5、profiling跟踪,分析性能损耗原因

    profiling步骤:

    1).set profiling=1;

    2).执行SQL

    3).show profiles; 获取2执行SQL的query_id

    4).show profile for query 【3步获取的query_id】

    2022-11-01 13:50:56
    赞同 1 展开评论 打赏
  • 下载阿里云

    以后性能变差好好学习,阿里云

    2022-12-21 16:49:06
    赞同 展开评论 打赏
  • sql优化

    2022-11-27 21:00:53
    赞同 展开评论 打赏
  • 索引未创建吧

    2022-11-27 21:00:52
    赞同 展开评论 打赏
  • 索引没有建立

    2022-11-27 20:54:49
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    标结构看一下,是不是还有索引没迁移

    2022-11-27 14:22:10
    赞同 展开评论 打赏
  • 优化一下

    2022-11-27 11:49:03
    赞同 展开评论 打赏
  • 检查迁移前后MySQL的规格,配置是否一致

    查看数据库的监控指标,查看数据库的慢日志

    2022-11-27 11:05:46
    赞同 展开评论 打赏
  • 慢sql优化

    2022-11-27 10:54:59
    赞同 展开评论 打赏
  • 2020全国Datathon数据分析大赛亚军, 2021全国Datathon数据分析大赛亚军, 微软X英特尔黑客松全国总决赛10强, 亚马孙云科技线上黑客松全国总决赛10强

    这个问题太大了,有没有其他参数呀?

    2022-11-27 09:38:11
    赞同 展开评论 打赏
  • 不好说

    2022-11-27 08:28:23
    赞同 展开评论 打赏
  • 通过explan查看sql执行计划,一步一步进行优化

    2022-11-27 08:06:37
    赞同 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    mysql迁移之后读取速度变慢有可能是碎片导致mysql查询访问变慢的,具体详见下面链接:https://blog.csdn.net/weixin_31968223/article/details/113466217?share_token=c604dfa7-950a-4a8f-af7b-a5723e4bc7ab&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_android&utm_campaign=client_share - 【mysql迁移之后读取速度变慢_碎片为什么会导致mysql... - 今日头条

    MySQL执行语句过程中涉及到两大流程:优化器和执行器。其中优化器最主要的任务,是选择索引和在多表连接时选择连接顺序。

    在case中,join顺序的选择会影响了执行性能。 确定join执行顺序就需要估算所有join操作的代价。默认配置下MySQL会估算所有可能的组合。

    MySQL里限制一个查询的join表数目上限为61.

    对于一个有61个表参与的join操作,理论上需要61!(阶乘)次的评估。

    多表join的场景下,为了避免优化器占用太多时间,MySQL提供了一个参数 optimizer_search_depth 来控制递归深度。 这个参数对算法的控制可以简单描述为:对于所有的排列,只取前当前join顺序的前optimizer_search_depth个表估算代价。

    MySQL Tips: MySQL中optimizer_search_depth默认值为62.也就是说默认为全排列计算。 这样能够保证得到最优的执行计划,只是在有些场景下,决定执行计划的时间会远大于执行时间本身。

    当出现实例迁移后,多表join执行结果差异较大的时候,要考虑调整这个值。该参数是允许线程单独设置,因此对于应用层来说,每个连接应该都能得到一个较优的值。 2) 反过来,当设置为默认的optimizer_search_depth=62时, MySQL Tips:MySQL profiling 可以用于查看各执行环节的消耗时间。

    2022-11-27 08:06:08
    赞同 展开评论 打赏
  • coder at work

    确认迁移前后MySQL的配置,同时查看MySQL的监控,确认前后性能差异的地方

    2022-11-27 08:06:08
    赞同 展开评论 打赏
  • 确认源实例和目标实例规格是否一致

    2022-11-27 08:03:54
    赞同 展开评论 打赏
  • 确认源实例和目标实例规格是否一致

    2022-11-27 08:03:54
    赞同 展开评论 打赏
  • 确认源实例和目标实例规格是否一致

    2022-11-27 08:03:54
    赞同 展开评论 打赏
  • 确认源实例和目标实例是否一致

    2022-11-27 08:03:55
    赞同 展开评论 打赏
  • 确认源实例和目标实例是否一致

    2022-11-27 08:03:55
    赞同 展开评论 打赏
  • 确认源实例和目标实例规格是否一致

    2022-11-27 08:03:54
    赞同 展开评论 打赏
  • 确认源实例和目标实例的规格是否一致

    2022-11-27 08:03:54
    赞同 展开评论 打赏
滑动查看更多
来源圈子
更多
收录在圈子:
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像