056、查询优化之优化实战

news2024/11/27 21:05:47

快速定位问题SQL

Dashboard->SQL Statements
在这里插入图片描述
在这里插入图片描述

快速定位慢查询

Dashboard -> slow queries
在这里插入图片描述
在这里插入图片描述

DML语句优化

大量DML操作导致OOM

  • 案例背景
    索引扫描范围过大,无论优化器是选择index scan还是table scan,TiDB都倾向 TiKV corprocessor请求读取大量的数据
    在这里插入图片描述

  • 案例现象
    Coprocessor CPU 使用率飙升 -> CPU 资源耗尽 -> 集群的duration升高
    大量数据删除 -> 加载到内存 -> 打满TiDB的内存 -> 导致OOM

  • 解决

    • 通过hint 或者 use index的方式强制走索引
    • 问题:在大量读取数据的场景,强制走索引很可能会带来更差的效果
    • 大事务化成小事务处理
      在这里插入图片描述

基于执行计划的优化

执行计划不稳定导致延迟增加

  • 案例背景
    在这里插入图片描述

  • 现象
    现象:执行计划不稳定可能会导致业务的相应延迟升高,duration出现抖动的情况

  • 解决
    方案一: 及时收集统计嘻嘻

    • 考虑使用analyze table来手动收集统计信息,或者结合cron job的方式
    • 调整tidb_auto_analyze_ration、tidb_auto_analyze_start_time和tidb_auto_analyze_end_time参数提高收集的频次,扩大收集的时间窗口

方案二: 更改执行计划
- 使用hint或者use index 语句固化执行计划
- 使用sql hint的方式更改执行计划

SQL执行计划不准

在这里插入图片描述

  • 背景
    在这里插入图片描述

  • 索引分析
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 统计信息收集
    统计信息分析在这里插入图片描述
    统计信息收集后
    在这里插入图片描述
    验证结果
    在这里插入图片描述

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

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

相关文章

Kotlin~Proxy代理模式

概念 又称委托模式,充当中介代理的类。 特点:让一个对象控制另一个对象的访问,让代理充当其他事物的接口。 角色介绍 抽象目标类具体目标类代理类 UML 代码实现 按实现分为静态和动态代理 interface PhoneSell {fun sell() }class Main…

MQ消费者报错

我在运行MQ消费者时 报了如下错误 Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (default-cli) on project consumer: Command execution failed. 解决办法 第一步&#xff1a; 在pom.xml文件上增加这个插件 <build><plugins><pl…

RPA界面元素定位与操控技术详解

什么是 RPA&#xff1f;RPA 是机器人流程自动化 Robotic Process Automation 的简写。在《智能RPA实战》中&#xff0c;我们这样定义&#xff1a;通过特定的、可模拟人类在计算机界面上进行操作的技术&#xff0c;按照规则自动执行相应的流程任务&#xff0c;代替或辅助人类完成…

OpenHarmony轻量设备获取网络中设备IP方式-组播

一、简介 ​ 在Openharmony的轻量和小型系统中&#xff0c;受限于cpu与内存资源等原因&#xff0c;网络协议一般使用lwip的实现。而且受限资源影响&#xff0c;lwip的socket数与端口数都通过宏定义控制在7-8个以内。在物联IOT实际应用中&#xff0c;经常会出现多台IOT设备在未…

MySQL 的缓存介绍

点击上方↑“追梦 Java”关注&#xff0c;一起追梦&#xff01; 一般情况下&#xff0c;我们不会用到数据库自带的缓存&#xff0c;所以 MySQL 默认是不开启缓存的。只有以读为主的业务&#xff0c;数据不变化的情况下&#xff0c;可以开启数据库的缓存。 查看缓存是否开启&…

NAT技术是什么?谈谈它的实现方式、优缺点以及作用

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 前言 随着网络的不断发展&#xff0c;网络的应用也越来越多&#xff0c;有限的IPV4地址就显得不怎么够用&#xff0c;所以出现了NAT技术&…

Linux系统下的文件权限

目录 一&#xff1a;关于人的权限 二&#xff1a;关于文件本身的权限 三&#xff1a;修改文件属性 chmod 身份/-rwx chmod 八进制数 四、更改文件所有人 ​编辑五、umask权限掩码 umask权限掩码的计算 Linux系统不以文件后缀来区分文件类型&#xff0c;当我们使用ls -l命…

springCloud整合Nacos当配置中心和注册中心

前言 本文主要介绍SpringCloud使用Nacos当配置中心和注册中心&#xff0c;通过一个简单的Demo学习Naocs的基本配置以及不同微服务之间通过RestTemplate 及openfeign完成接口调用。 Nacos的安装配置 Nacos的学习资源主要有以下两个 Nacos管网 Nacos管网Nacos GitHub NacosGi…

智力差异性对课程的影响

“收藏从未停止&#xff0c;练习从未开始”&#xff0c;或许有那么一些好题好方法&#xff0c;在被你选中收藏后却遗忘在收藏夹里积起了灰&#xff1f;今天请务必打开你沉甸甸的收藏重新回顾&#xff0c;分享一下那些曾让你拍案叫绝的好东西吧&#xff01; 你可以从以下几个方…

debian/PVE安装好后拔显卡后连接不了网络

目录 前因 原因 解决办法 注意 需要主板bios支持跳过显卡自检 解决好主板bios问题然后再继续解决系统问题 前因 前几天装了个​Proxmox​ ve当做一个服务器7*24开机 但是由于转好系统后&#xff0c;显卡就不需要了 加上它耗电的原因&#xff08;我的gtx650平时空载有1…

JavaFx开发图形化界面常用颜色对照表

LightPink 浅粉色 #FFB6C1 255,182,193 Pink 粉红 #FFC0CB 255,192,203 Crimson 猩红 #DC143C 220,20,60 LavenderBlush …

【PostgreSQL内核学习(六)—— 工具使用学习】

工具使用学习 工具使用学习安装中出现的问题 声明&#xff1a;本文的工具学习内容来自于《小宇带你学pg内核分析》 工具的代码仓库链接为&#xff1a; https://github.com/shenyuflying/pgNodeGraph 此外&#xff0c;我还参考了以下文章&#xff1a; https://rng-songbaobao.bl…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio制作蛋仔派对兑换码工具

目录 &#x1f373;前言&#x1f373;实验介绍&#x1f373;产品介绍&#x1f373;抓包分析&#x1f603;登录分析&#x1f603;&#x1f603;第一步&#xff0c;获取验证码&#x1f603;&#x1f603;第二步&#xff0c;保存验证码&#x1f603;&#x1f603;第三步&#xff0…

RocketMQ教程-(4)-领域模型概述

Apache RocketMQ 是一款典型的分布式架构下的中间件产品&#xff0c;使用异步通信方式和发布订阅的消息传输模型。通信方式和传输模型的具体说明&#xff0c;请参见下文通信方式介绍和消息传输模型介绍。 Apache RocketMQ 产品具备异步通信的优势&#xff0c;系统拓扑简单、上下…

ffmpeg中filter_query_formats函数解析

ffmpeg中filter_query_formats主要起一个pix fmt引用指定的功能。 下下结论&#xff1a; 先看几个结构体定义&#xff1a; //删除了一些与本次分析不必要的成员 struct AVFilterLink {AVFilterContext *src; ///< source filterAVFilterPad *srcpad; ///<…

C语言程序运行需要的两大环境《C语言进阶》

目录 程序的翻译环境和执行环境 翻译环境分为两部分&#xff0c;编译链接 第一步&#xff1a;预编译&#xff08;预处理&#xff09; 第二步&#xff0c;编译 第三步&#xff1a;汇编 关于运行环境分为四点&#xff1a; 关于链接库 程序的翻译环境和执行环境 在 ANSI C(标…

三十章:Segmenter:Transformer for Semantic Segmentation ——分割器:用于语义分割的Transformer

0.摘要 图像分割在单个图像块的级别上经常存在歧义&#xff0c;并需要上下文信息来达到标签一致性。在本文中&#xff0c;我们介绍了一种用于语义分割的Transformer模型- Segmenter。与基于卷积的方法相比&#xff0c;我们的方法允许在第一层和整个网络中对全局上下文进行建模。…

C语言 与 C++ 通讯录对比实现(附源码)

目录 1.通讯录的基本框架 C语言版 C版 2.增加联系人 C语言版 C版 3.删除联系人 C语言版 C版 4.查找与打印联系人 C语言版 C版 5.修改联系人 C语言版 C版 6.排序联系人 C语言版 C版 7.其他 8.总结 本文章将对C语言、C版本的通讯录进行对比实现。其中C版本引入大量C语言没有的特性…

macOS 源码编译 Percona XtraBackup

percona-xtrabackup-2.4.28.tar.gz安装依赖 ╰─➤ brew install cmake ╰─➤ cmake --version cmake version 3.27.0brew 安装 ╰─➤ brew update╰─➤ brew search xtrabackup > Formulae percona-xtrabackup╰─➤ brew install percona-xtrabackup╰─➤ xtr…

提升 API 可靠性的五种方法

API 在我们的数字世界中发挥着关键的作用&#xff0c;使各种不同的应用能够相互通信。然而&#xff0c;这些 API 的可靠性是保证依赖它们的应用程序功能正常、性能稳定的关键因素。本文&#xff0c;我们将探讨提高 API 可靠性的五种主要策略。 1.全面测试 要确保 API 的可靠性…