mysql 的诡异现象,CPU 100%,order by 主键提示 sending data

MySQL - 大量 sending data 状态进程,让数据库性能急剧下降。 问题现象 日志库大量进程阻塞,导致服务不可用。 日志库状况描述 数据特点 数据库是用于存储用户点击、激活、登录、付费等所有日志,使用了 Tokudb 存储引擎。特别是点击数据,现在已经达到 2亿 量级。 进程状态 当时登录到数据库中查询到有很多进程处于 Sending data 和 open table 状态,数据库处于极度阻塞的状态。 Sending data 和 open table 状态的进程是来自 select 语句,加上其他 insert 语句带来的进程,数据库实时的进程数在百级别了(这里稍微记一 阅读详情

mysql 单表数据量 50万,执行查询一直CPU爆表,按照hash(id) 分表 partitions 10份。
问题依旧出现,新问题出现了 select * from tb where status in(1,2) and type=1 order by id desc limit 1 提示sending data

诡异

MariaDB [db2_zz]> select count(tid) from zz_info where status in(1,2) and c2=12176;
+------------+
| count(tid) |
+------------+
|       4167 |
+------------+
1 row in set (0.01 sec)

MariaDB [db2_zz]> select max(uptime) from zz_info where status in(1,2) and c2=12176;
+-------------+
| max(uptime) |
+-------------+
|  1498126645 |
+-------------+
1 row in set (4.80 sec)

MariaDB [db2_zz]> select max(tid) from zz_info where status in (1,2) and c2=12176;
+----------+
| max(tid) |
+----------+
|  1364323 |
+----------+
1 row in set (0.00 sec)

MariaDB [db2_zz]> SELECT max(tid) FROM `zz_info` WHERE (`status` IN (1, 2)) AND (`d1`='25') LIMIT 1;
+----------+
| max(tid) |
+----------+
|  1636927 |
+----------+
1 row in set (1.59 sec)

字段status 和 d1 都有加单独索引,给 status d1 加复合索引之后,问题改善,但是一用上 order by 主键就不行,sending data。

MariaDB [db2_zz]>  SELECT max(id) FROM `zz_info` WHERE (`status` IN (1, 2)) AND (`d1`='25') LIMIT 1;
+----------+
| max(tid) |
+----------+
|  1636927 |
+----------+
1 row in set (0.11 sec)

猜想

mysql 分表 partition by hash(id) partitions 10 之后用主键排序性能更差,还不如使用索引来排序快,最后只能改为 select max(主键) 加上 符合索引来解决问题。

有更好的方法吗?欢迎探讨 coconets@163.com

MySQL查询性能分析:用SHOW PROFILE快速定位SQL瓶颈 MySQL查询性能分析是数据库调优的基础能力,其核心在于通过语句级时间采样揭示SQL执行各阶段的真实耗时。原理上,它依托Server层12个标准执行阶段的毫秒级计时,精准反映解析、优化、锁等待、IO读写等底层行为。该技术具备零侵入、低开销、高时效的特点,无需修改代码或重启服务,特别适合开发自测与线上应急诊断。典型应用场景包括慢接口根因排查、索引有效性验证、内存与磁盘临时表问题识别,以及亚秒级‘伪健康’查询的深度剖析。本文聚焦MySQL原生`SHOW PROFILE`机制,结合`Sending data`、` 阅读详情

相关推荐

MySQL Query Profiling:精准定位SQL慢因的听诊器

MySQL Query Profiling 是一种面向单条SQL的实时、会话级性能剖析机制,其核心在于将查询总耗时精确拆解为内核各执行状态(如 'Sending data'、'executing')的微秒级驻留时间。不同于依赖阈值的慢查询日志或宏观聚合的 performance_schema,它直击‘为什么这条SQL在此刻变慢’这一根因问题,尤其适用于排查索引有效但响应迟缓的亚健康场景。技术价值体现在低侵入、零配置、高精度三大特性,广泛应用于开发本地复现、DBA深度根因分析及生产环境偶发性能瓶颈的闭环治理。

weixin_34074740的博客 446

order by和limit结合使用的问题

在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题。 比如现在有一张user表,表结构及数据如下: 现在想根据创建时间升序查询user表,并且分页...

qq_42842607的博客 1819

MySQL BLOB存图片的实战决策指南:Ubuntu 20.04 + PHP深度避坑

BLOB(Binary Large Object)是关系型数据库中存储二进制大对象的基础机制,其核心原理在于将文件数据作为字段值嵌入事务引擎(如InnoDB),从而保障ACID一致性与备份原子性。相比文件路径引用,BLOB的技术价值体现在强事务绑定、权限统一管控、分布式路径解耦及运维收敛性,但代价是显著增加磁盘IO、内存压力与网络传输开销。典型应用场景包括金融开户凭证、医疗影像元数据、政务审批附件等对数据不可分割性有硬性合规要求的系统。本文聚焦Ubuntu 20.04环境下PHP与MySQL协同操作BLOB

weixin_30873847的博客 443

Mysql使用SHOW PROFILE剖析单条查询的性能

一、相关的指令 #默认 show profile 是关闭的,开启分析 SET PROFILING = 1; #查看profiles,找到相关的sql对应id show profiles; #查看单条记录的详细 query id; show profile for query 29; #产看对CPU,IO等信息 show profile cpu for query 29; ##对每一个子任务的花费时...

爱与不爱,一念之间 391

Ubuntu 18.04 搭建 ownCloud 私有云盘全栈实践

私有云盘是企业数据自主可控的核心基础设施,其本质是基于 Web 服务(如 Apache)、关系型数据库(如 MySQL)和动态脚本环境(如 PHP)构建的文件同步与协作平台。技术原理上依赖重写路由、事务级文件锁、OPcache 字节码加速及安全加固机制,具备高可审计性、低厂商锁定风险和本地化部署优势。典型应用场景包括部门级文档协同、科研数据归档、内网知识库建设及等保合规存储。本文聚焦 Ubuntu 18.04 LTS 环境下 ownCloud 10.x 的生产级部署,深度解析 Apache mod_rewr

weixin_34414650的博客 565

性能优化五层归因法:从用户卡顿到代码级定位

性能瓶颈是分布式系统中最常见也最易被误判的技术问题,其本质是响应延迟在用户感知、网络传输、应用服务、外部依赖与代码执行五个层级上的叠加体现。理解分层归因原理,能避免盲目扩容或框架替换等低效决策;掌握首屏加载、后端吞吐、前端渲染等关键观测点,可快速收敛问题范围;结合全链路追踪、火焰图分析与实时SQL诊断等工程实践,可将模糊的‘慢’转化为可测量、可验证、可修复的具体指标。本文聚焦真实生产环境中的性能故障闭环路径,覆盖从用户点击到CPU指令的完整定位链条。

weixin_30706691的博客 351

一次Mariadb死锁排查过程回顾

场景 在使用某个平台的时候,有些页面发现长时间,部分数据无法加载成功,开始排查问题。 确定是mariadb的问题的过程 访问了几个页面都是正常的,唯独某几个页面查询实时监控数据时无法加载出来,F12查看接口发现有几个业务相似的接口长时间不返回数据。 既然整体功能是正常的,只有部分页面出现问题,而且都是实时数据无法显示,怀疑是同一个地方出现问题,于是把接口放在一起发现共同点。 都是timeout...

机智的程序员小熊 4426

Ubuntu 12.04下Apache虚拟主机配置实战指南

虚拟主机(Virtual Hosts)是Apache实现单服务器多站点托管的核心机制,其原理基于HTTP Host头匹配与请求路由分发,技术价值在于以零额外硬件成本达成服务逻辑隔离与资源复用。典型应用场景包括内网老旧系统维保、教育实验室部署、工控Web管理界面等受限环境。在Ubuntu 12.04 LTS这一长期支持但已停止维护的发行版中,配置需深度适配Apache 2.2.22、init.d服务模型及Debian式配置树结构,尤其关注NameVirtualHost显式声明、a2ensite符号链接机制、w

423

mysql查询Sending data慢耗时长

在一个数据量为70W+的表中使用count计数查询,因为有使用到like模糊查询,导致索引无效,查询时间增至30秒。查看innodb_buffer_pool_size值(当前已修改为1.3G原先500M)经分析在查询中Sending data耗时很大,占60%以上的时间。修改此值可以减少Sending data耗时。查看query_cache_type值为。1查看是否开启查询缓存。2.查看数据缓存大小。

weixin_44386456的博客 1584

深入分析MySQL Sending data查询慢问题

通过一个实例给大家分享了MySQL Sending data表查询慢问题解决办法。 最近在代码优化中,发现了一条sql语句非常的慢,于是就用各种方法进行排查,最后终于找到了原因。 一、事故现场 SELECT og.goods_barcode, og.color_id, og.size_id, SUM(og.goods_number) AS sold_number FROM order o LEFT JOIN order_goods og ON o.order_id = og.order_id WHERE o.is_send = 0 AND o.shipping_status = 0 AND

mysql 卡死 大部分线程长时间处于sending data的状态

首先说明一下,这是个无头的案子,虽然问题貌似解决了,不过到现在我也没有答案,只是把这个问题拿出来晾晾

SQL OR运算符原理与性能优化实战指南

OR是SQL中实现条件‘并集’逻辑的核心运算符,其本质是扩大结果集范围,支持多路径业务筛选需求。它基于布尔逻辑与三值逻辑(含NULL处理)运行,在执行层面依赖查询优化器对条件的分解、短路评估及索引合并(Index Merge)等机制。合理使用OR可提升查询表达力与运营效率,但不当写法易导致索引失效、全表扫描及NULL漏数据等问题。典型应用场景包括用户分层召回、多状态订单聚合、跨字段模糊匹配等。本文聚焦OR的底层执行原理、索引适配策略与NULL安全写法,结合EXPLAIN诊断与函数索引等工程实践,帮助开发者写

weixin_33874713的博客 521

eDP、DP与HDMI——现代显示接口的核心解析

eDP、DP和HDMI各有千秋:eDP以嵌入式设备的低功耗见长,DP凭借开放生态和高带宽成为专业领域首选,而HDMI则依靠庞大的消费电子生态稳居家庭市场。未来,随着Type-C接口的普及和超高清内容的爆发,三者的技术边界可能进一步融合,但各自的核心优势仍将长期共存。对于用户而言,选择接口需基于设备需求——游戏玩家青睐HDMI的VRR,设计师依赖DP的多屏扩展,而轻薄本则离不开eDP的紧凑设计。

麟的博客 8410

mysql count() 超时_MySQL的count(*)执行慢的解决方案和不同count的比较

业务中经常需要获取一个表的行数,但随着数据表不断增大,你会发现一条count(*)语句执行的效率越来越让人难以忍受。聊到这里,有必要介绍一下count的实现方式在MyISAM中,MyISAM直接记录了表的行数,执行count(*)会直接返回这个数字,因此效率很高。在InnoDB中,它会先把数据逐行读取出来,再累计计数,执行效率受数据量的影响。那么为什么InnoDB不能向MyISAM一样维护一个表行...

weixin_39636608的博客 1876

最优化理论与自动驾驶(三):LQR原理、公式及代码演示

LQR 是基于线性系统和二次型代价函数的最优控制方法,在实际工程应用中,我们一般采用离散时间系统的LQR设计,其目标是通过设计反馈控制律,使系统在离散时间步长内稳定运行,最小化某个二次型代价函数。给定一个离散时间系统,其状态和控制输入通过以下方程表示:是时刻k的系统状态,是时刻k的控制输入,是状态转移矩阵,是输入矩阵。系统描述的物理意义:系统状态通过矩阵A演变到下一时刻,同时控制输入通过矩阵B影响系统的状态。

a8598671的博客 4595

告别编译报错!手把手教你用VS2022命令行编译curl静态库(附完整测试代码)

本文详细介绍了如何在VS2022环境下通过命令行编译curl静态库,从环境准备、编译实战到项目集成,提供了完整的避坑指南和测试代码。特别针对常见的编译报错如LNK2019等给出了具体解决方案,帮助开发者高效完成网络库的静态编译与集成。

weixin_42557803的博客 447

send data mysql_MySQL:sending data状态包含了什么

一、问题由来这是一个朋友问我的(@成都--麦涩可),原问题如下:数据库发送数据给客户端这个时间算是sql的执行时间嘛?要解决问题我们需要知道MySQL何时将数据传输给了客户端,既然是要传输实际的数据给客户端那么肯定是select语句了,同时我们要明白一个正常select运行到底要经历哪些阶段。二、一个简单SELECT语句经历的阶段2392 T@10: | | | | | THD::enter_s...

weixin_27722377的博客 992

STM32硬件SPI驱动ADS1255/1256避坑指南:从Cube MX配置到稳定采样实战

本文详细解析了使用STM32硬件SPI驱动高精度ADC芯片ADS1255/1256的完整流程与关键陷阱。重点阐述了Cube MX中SPI模式(必须为CPOL=1, CPHA=1)、数据帧格式(MSB First)及波特率(建议从256kHz起)的正确配置,并提供了分步读写时序的代码实现与逻辑分析仪调试方法,帮助开发者避开常见坑点,实现稳定可靠的高精度数据采样。

weixin_29193259的博客 358

mysql 查询中sending data 时间过长

过长的原因1、查询字段过多 使用了 SELECT * FROM TABLE 2、查询数据过多  比如 LIMIT 0,1000 3、查询数据不多 但是偏移量大 比如 LIMIT 1000,10 如果是 第一种情况  修改sql,改成 SELECT id,name FROM TABLE 如果是第二种情况 目前是无解 如果是第三种情况  可以采用比如用ID 排序 可以 用ID>XXX

larance的挨踢生活 5301

Multisim仿真入门:单相半波可控整流电路从搭建到波形分析(附避坑指南)

本文为电力电子技术初学者提供了一份详细的Multisim仿真指南,手把手教你从零搭建单相半波可控整流电路。通过对比纯电阻、阻感负载及加入续流二极管后的波形变化,直观理解晶闸管触发、电感续流等核心原理,并附有实用的参数设置与常见问题避坑指南,帮助你将抽象理论转化为可视化的工程实践。

weixin_29208077的博客 343

YOLOv8模型压缩终极方案:LAMP剪枝实战,速度提升不掉点

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

LXY_LOVE36的博客 174

MySQL Explain解析

概要描述: id:选择标识符 select_type:表示查询的类型。 table:输出结果集的表 partitions:匹配的分区 type:表示表的连接类型 possible_keys:表示查询时,可能使用的索引 key:表示实际使用的索引 key_len:索引字段的长度 ref:列与索引的比较 rows:扫描出的行数(估算的行数) filtered:按表条件过滤的行百分比 Extra:执行情况的描述和说明 ...

石似心的博客 433

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

mysql count sending data_mysql查询sending data占用大量时间的问题处理

问题描述:某条sql语句在测试环境执行只需要1秒不到,到了生产环境执行需要8秒以上在phpmyadmin里面执行性能分析,发现sending data占用了差不多90%以上的时间查询一下“Sending data”状态的含义,原来这个状态的名称很具有误导性,所谓的“Sending data”并不是单纯的发送数据,而是包括“收集 + 发送 数据”。这里的关键是为什么要收集数据,原因在于:mysql使...

weixin_36228334的博客 1120

目标检测YOLO实战应用案例100讲-基于激光雷达点云的三维目标检测算法研究

近几年来,在计算机视觉领域,利用深度学习卷积神经网络技术来实现各种任务的算法越来越多。毫米波雷达、相机、激光雷达、超声波雷达等车载传感器生产成本的降低,汽车的自动驾驶技术得到了飞速发展,在我们的日常生活中经常能看到该技术辅助汽车驾驶员进行行车。和非自动驾驶汽车相比,自动驾驶汽车存在诸多优点,如进一步减少交通事故,保障人身安全;提供安全合理的路线,避免交通拥堵;采用清洁无污染的电能作为汽车新能源,从而降低大气污染等。现如今,自动驾驶技术已经逐渐深入到各个领域并发挥着关键的作用。

qq_36130719的博客 3730

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: MySQL 1040 Too many connections
下一篇: nginx 开启 gzip压缩的一个忽略地方
用户昵称不能为空
博客等级 码龄18年 735粉丝 631原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值