故障分析 | 同一条 SQL 为何在 MariaDB 正常,MySQL 5.7 却很慢?

MySQL数据库安全加固实战:从默认配置到纵深防御 数据库安全是系统架构中的核心环节,其本质在于通过访问控制和权限管理来保护数据资产。基于最小权限原则和纵深防御理念,安全加固需要从网络边界、账户管理、权限控制等多层面构建防御体系。在MySQL数据库的实际运维中,常见的安全风险包括默认端口暴露、弱密码策略、root账户远程访问等,这些隐患极易导致数据泄露和未授权访问。通过实施网络访问控制、强化账户密码策略、启用日志审计等关键技术手段,可以有效提升数据库的整体安全性。本文聚焦于Linux环境下MySQL数据库的实战加固,提供了从风险诊断到具体操作的完整指南,帮助 阅读详情

作者:王顺
爱可生 DBA 团队成员,在公司负责项目中处理数据库问题,喜欢学习技术,钻研技术问题。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


同一条 SQL 在 MariaDB 上运行正常,为什么在 MySQL 5.7 上运行很慢?

一、问题描述

客户生产环境数据库迁移,数据库从 MariaDB 10.4 迁移到 MySQL 5.7,一条业务 SQL 运行很慢。从客户了解到业务之前在 MariaDB 运行正常,近期业务没有变更过,迁移到 MySQL 5.7 运行很慢,已经影响业务正常使用。

二、环境检查

(因生产环境涉及敏感信息,以下信息为测试环境信息)

  1. MariaDB 的执行计划

  1. MySQL 5.7 的执行计划

  1. 表结构和列信息

三、分析过程

  1. 通过执行计划分析

从 MySQL 5.7 执行计划的 warnings 中,可以清晰的看到 id 字段的字段类型或排序规则转换,无法使用索引。

  1. 查看图 3 表结构和列信息对比,两个表的 id 字段排序规则不同存在隐式转换。如下:sbtest1 表 id 字段 char(32) 排序规则 utf8_binsbtest2 表 id 字段 char(32) 排序规则 utf8_general_ci

四、解决方法:

  1. 将 sbtest1 表 id 字段排序规则 utf8_bin 改成 utf8_general_ci

可以看到排序规则改变后,执行计划正常。

  1. 使用 convert 转换

使用 convert 对 sbtest1 表 id 字段进行转换,执行计划正常。

五、结论:

MySQL 5.7 检测到表 sbtest1 的 id 字段和表 sbtest2 的 id 字段的 collation 不同,没有正常走索引,造成查询很慢。通过改变排序规则或使用 convert 转换可以解决。由于 MariaDB 和 MySQL 的 collation 转换规则对执行计划的影响不同,在 MariaDB 中,不同的 Collation 并没有影响到查询效率。

Nextcloud+Docker+Ubuntu生产部署实战:避坑指南 私有云协作平台Nextcloud并非简单安装即可运行,其稳定依赖Docker容器编排、Ubuntu系统调优、OnlyOffice深度集成与Rclone存储扩展四大技术支柱。原理上,Docker提供服务隔离与声明式运维,Ubuntu内核与DNS机制直接影响容器网络连通性,OnlyOffice需JWT认证与WebSocket长连接保障实时编辑,Rclone则通过FUSE虚拟化实现对象存储无缝接入。技术价值在于构建高可用、可伸缩、数据主权可控的轻量级私有云基座。典型场景包括中小团队文件中心搭建、摄影工作室NAS协 阅读详情

相关推荐

BUCK电路三种工作模式全解析:CCM、BCM、DCM到底怎么选?

本文深入解析BUCK电路的CCM、DCM和BCM三种工作模式,通过对比其电流波形、效率、纹波及环路特性,提供基于计算公式的量化判断方法。文章结合电池供电、高精度模拟等具体应用场景,给出明确的模式选型策略与实战设计指南,帮助工程师根据核心需求做出最优决策。

ee345的博客 482

结果出乎意料!MySQL和MariaDB谁快?MySQL 8.0比MySQL 5.6快吗?

MySQL和MariaDB哪个更快?MySQL 8.0的版本和早期MySQL 5.6的版本哪个更快?这儿有个第三方的测试报告回答了这两个大家关心的问题,姚远来和大家一起解读一下。

姚远OracleACE的博客 1821

Vivado新手必看:5分钟搞定FPGA程序固化到Flash(附MCS文件生成全流程)

本文为FPGA新手详细解析了如何将程序固化到Flash存储器的完整流程。核心在于理解SRAM工艺FPGA断电易失的特性,并利用Vivado工具将比特流文件转换为Flash可识别的MCS文件。文章重点拆解了生成MCS文件的关键配置步骤、硬件连接要点,以及通过JTAG烧写Flash的实战操作,并提供了常见启动失败问题的排查清单,帮助开发者实现设计从调试到产品部署的关键跨越。

weixin_29230901的博客 351

MariaDB中的一次慢日志查询

数据库的慢查询

程序员ZZ的源码 1188

FPGA时钟架构解密:从SRCC/MRCC到全局时钟树的实战指南

本文深入解析Xilinx 7系列FPGA时钟架构,从SRCC/MRCC引脚特性到全局时钟树设计,详细介绍了BUFG、BUFMR等关键组件的应用场景和优化策略。通过对比SRCC与MRCC的驱动范围及适用场景,提供低抖动时钟布线技巧和时钟域交叉(CDC)设计方法,帮助工程师构建高性能FPGA时钟系统。

weixin_29191081的博客 1483

第七章 Wi-Fi连接过程

系列文章目录 第一章 国内下载AOSP最新源码的方法 第二章 下载AOSP WiFi相关的代码 第三章 将源码导入Android Studio(无需编译idegen) 文章目录系列文章目录前言一、Wi-Fi连接是什么?二、Wi-Fi连接的过程1. 手动连接总结 前言 Wi-Fi连接分为下面几种过程,每种的流程都有些许差异: 手动连接 自动连接 在BSS之间漫游 Passpoint热点连接 一、Wi-Fi连接是什么? Wi-Fi连接是指STA(手机)连接到AP(无线路由器)的过程,这个过程分为链路

Frank.Zhang的专栏 2526

解决远程连接MariaDB/MySQL速度慢的问题

同一局域网内连接服务器的MariaDB/MySQL要十几秒,显然很不正常,其实只需要修改/etc/my.cnf或者/etc/mysql/mariadb.conf.d/50-server.cnf,在[mysqld]段落中增加一行skip-name-resolve跳过计算机名解析就行了 [mysqld] skip-name-resolve ...

Dexter's Laboratory 2179

修复后找不到ip 黑群晖_黑群晖引导U盘损坏了怎么办?

前言虽然一般来说引导U盘损坏的可能性很小,但是避免不了万一出现问题导致黑群晖没有办法引导进入系统也是一件相当麻烦的事情。这里我就用两块U盘做个小试验,看看如果黑群晖上的引导U盘损坏以后,另一块U盘需要怎样写引导文件才能让黑群晖正常引导进入系统。试验开始我这里黑群晖使用的是DSM6.1.7的系统,U盘一块使用的是闪迪的酷豆,另一块就是闪迪的酷铄。目前系统引导U盘使用的是酷豆,VID:0781 PID...

weixin_36239323的博客 8267

mysql8比mysq5.7快2倍_比上一版本快 2 倍 的 MySQL 8.0 GA了!

一直被传言难产的 MySQL 8.0 终于还是发布了,可喜可贺啊!MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!不过值得注意的是,从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级,并且不支持从 MySQL 8.0 降级到 MySQL 5.7(或从某个...

weixin_34351588的博客 1094

华中科技大学 计算机组成原理 educoder Logisim平台 计算机数据表示实验

本文主要是对 计算机数据表示实验的笔记和相关Logisim平台的图,供大家学习交流使用。 需要源文件或者源代码,可以留言评论! 目录实验目的第1关:汉字国标码转区位码实验第2关:汉字机内码获取实验第3关:偶校验编码设计第4关:偶校验解码电路设计第5关:16位海明编码电路设计第6关:16位海明解码电路设计第7关:海明编码流水传输实验第8关:16位CRC并行编解码电路设计第9关:CRC编码流水传输实验实验结果: 实验目的 本实训将帮助同学们巩固对计算机中数据表示方法的理解,要求能设计汉字国标码与区位码之间的转换

weixin_48383580的博客 2万+

MAX30102心率血氧传感器原理图设计,已量产(e-Health传感器)

在最近的便携健康监测设备项目中,我们采用了集成算法的 MAX30102 心率血氧模块 —— 这类带内置 MCU 算法的传感器能直接输出心率 / 血氧数值,大幅降低了主控资源占用。但硬件电路的稳定性直接决定了 PPG 信号的采集精度,下面结合实际项目里的原理图,拆解下这个模块的设计细节。

不脱发的程序猿 1276

MySQL与MariaDB性能比拼

文章目录MySQL与MariaDB性能比拼MySQL的发展史横空出世的MariaDB是什么鬼测试环境插入性能单条插入批量插入查询性能无索引有索引总结 MySQL与MariaDB性能比拼 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w1iIGJo6-1580794911251)(img/1.png)] MySQL的发展史 MySQL的历史可以追溯到1979年,它的创...

鸿鹄之志 1万+

我的宠物狗学编程:从零开始的代码之旅

在这个示例中,我们定义了一个名为"interact"的函数,它通过输入函数获取用户的输入,并根据输入执行相应的代码块。在编程中,我们使用条件语句来根据不同的条件执行不同的代码块。对于我的狗狗,我将创建一个名为"feed"的函数来表示它的进食行为,并根据不同的条件输出不同的信息。在这个示例中,我们定义了一个名为"feed"的函数,并使用一个参数"food"来表示食物。对于我的狗狗,我将创建一个名为"dog_name"的变量来存储它的名字。对于我的狗狗,我将创建一个名为"bark"的函数来表示它的叫声。

2301_79331387的博客 333

sql in为什么很慢_故障分析 | 同一条 SQL 为何在 MariaDB 正常,MySQL 5.7 却很慢?

作者:王顺爱可生 DBA 团队成员,在公司负责项目中处理数据库问题,喜欢学习技术,钻研技术问题。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。同一条 SQL 在 MariaDB 上运行正常,为什么在 MySQL 5.7 上运行很慢?一、问题描述客户生产环境数据库迁移,数据库从 MariaDB 10.4 迁移到 MySQL 5.7,一条业务 SQL ...

weixin_39920397的博客 177

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

sql根据字段值不同排序规则不同_故障分析 | 同一条 SQL 为何在 MariaDB 正常,MySQL5.7 却很慢?...

作者:王顺爱可生 DBA 团队成员,在公司负责项目中处理数据库问题,喜欢学习技术,钻研技术问题。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。同一条 SQL 在 MariaDB 上运行正常,为什么在 MySQL 5.7 上运行很慢?一、问题描述客户生产环境数据库迁移,数据库从 MariaDB 10.4 迁移到 MySQL 5.7,一条业务 SQL ...

weixin_39656853的博客 304

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

记一次MySQL迁移并从MySQL5.6升级到5.7后查询慢了几十倍的问题

起因 因为生产环境数据量越来越大,客户越来越多,项目功能也越来越多,项目本身也越来越多,导致之前的服务器内存、硬盘都已经渐渐的不够用了,当时出现了2种解决方案,增加服务器配置和新购服务器,但是就算是新增硬盘,也需要对数据库进行迁移,所以就采用了新购服务器的方案,并且因为之前是高效云盘,出现过IO占满的情况,所以对于新购的服务器采用了SSD硬盘,理论上速度会飞起来了,实际上我在新服务器上安装MyS...

wantnrun的专栏 3517

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

盘点MySQL慢查询的12个原因

前言 日常开发中,我们经常会遇到数据库慢查询。那么导致数据慢查询都有哪些常见的原因呢?今天田螺哥就跟大家聊聊导致MySQL慢查询的12个常见原因,以及对应的解决方法。 1. SQL没加索引 很多时候,我们的慢查询,都是因为没有加索引。如果没有加索引的话,会导致全表扫描的。因此,应考虑在where的条件列,建立索引,尽量避免全表扫描。 反例: select * from user_info where name ='捡田螺的小男孩公众号' ; 正例: //添加索引 ...

yangjnsjbad的博客 5308

解决yum安装MariaDB 速度巨慢的问题

创建/etc/yum.repos.d/MariaDB.repo文件,这里用到了刚刚发布正式版的10.3.7版本 首先看官方的镜像 发现MariaDB下载很慢 几十Kb 简直要崩溃有木有 [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.3.7/centos7-amd64/ gpgkey=https://yum.ma...

一名准程序员 5149

【MySQL】MariaDB排序分组的坑

情况描述 平时都在用mysql 5.6习惯了,公司的数据库是Mariadb,之前一直没注意,今天有人反馈说排序不对,仔细检查了一下发现确实有问题。 MariaDB 中当语句中有 group by 居然是按照主键或者是唯一索引做的排序,从小到大,后面接的 order by 根本不起作用, ...

Hurpe 934

MariaDB 对比 MySQL

MariaDB 开发的主要目标是减少对 MySQL 的替换,以提供更强大的功能和更好的性能。MariaDB 基于对应的 MySQL 版本。这意味着,MariaDB 版本是在 MongoDB 对应版本发布之后发布的,添加了一些 bug 修复、额外的存储引擎、新特性和性能改进。 MariaDB 与 MySQL 区别 Index MariaDB MySQL 1 MariaDB 是纯开源的。 MySQL 采用双重许可授权。 2 MariaDB 在 GPL、LGPL 或 BSD 下发布。 MySQ

杰森写代码 5844

全面分析MySQL和MariaDB的区别

需要注意的是,尽管MariaDB的一些特性与MySQL不同,但它们之间的语法和命令基本相同,可以通过使用相同的客户端工具和API进行交互。MySQL使用的是GPL许可证,而MariaDB则使用的是LGPL许可证,这意味着开发人员可以在开源和专有软件项目中自由地使用MariaDB,而使用MySQL则需要遵循一些特定的条件。MySQL是由Oracle Corporation开发和维护的,而MariaDB是由MySQL的创始人之一Michael Widenius领导的团队开发和维护的。

sinat_27487431的博客 2215

再见,MySQL!性能被 MariaDB 吊打…

Java技术栈www.javastack.cn关注阅读更多优质文章MySQL的发展史MySQL的历史可以追溯到1979年,它的创始人叫作Michael Widenius,他在开发一个报表工...

Java技术栈,分享最主流的Java技术 1836

MariaDB: 谁是更为正宗的MYSQL

随着Oracle买下Sun,MySQL也落入了关系型数据库王者之手。而早在2009年,考虑到Oracle的名声以及其入手之后闭源的可能性,MySQL之父的Michael便先行一步,以他女儿Maria的名字开始了MySQL的另外一个衍生版本:MariaDB。 Michael 的名声很好,很快追随者很快排满了八条街,主流的Linux发行商基本上都开始转而支持使用MariaDB以规避MySQL不确定性

知行合一 止于至善 3万+

为什么MariaDB更优于MySQL

本文为读者提供MariaDB和MySQL的深入见解。分析两者并讨论它们之间的差异。还有一部分内容阐述为什么MySQL用户应该切换到MariaDB。 如今,组织有一系列数据库可供选择–无论是商业还是开源。曾经有一段时间,大多数数据库管理系统(DBMS)都是商业的。但是现在,随着众多开源数据库的推出,行业专业人士更愿意使用它们。实际上,开源数据库在当今市场上占有相当大的份额,因为用户可以根据需求自由...

魂影魔宅 7391

linux mysql占用700%多_[性能问题] CentOS6.2_x86_64+mysql-5.5.21数据库出现严重的性能问题,CPU飙升700%,...

查看slow日志,如下:# cat /data/mysql-3306/data/mysql-slow.log|grep Query_time|sort -rn|more# Query_time: 2.217110Lock_time: 0.000138 Rows_sent: 71Rows_examined: 403624# Query_time: 1.834154Lock_time: 0...

weixin_42462382的博客 349

浅谈MYSQL5.7以及MariaDB10.3小差异

浅谈MYSQL5.7以及MariaDB10.3小差异 二者基础架构是一样的,默认变量参数数据也大同小异 mysql> SHOW VARIABLES LIKE 'max_con%'; +--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | max_conn...

黑白一戒 4528
上一篇: 故障分析 | 有效解决 MySQL 行锁等待超时问题【建议收藏】
下一篇: 分布式 | DBLE 新全局表检查实现浅析
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值