MariaDB 10.5 杀掉长事务连接与 MySQL 8.0 操作命令有什么不同?

文章导读
根据现有公开资料,目前未找到 MariaDB 10.5 与 MySQL 8.0 在杀掉长事务连接命令上的具体性能差异数据,但两者在版本特性上存在明确差异,如 MySQL 8.0.18 支持 auth_socket 插件,而 MariaDB 10.4.6 已添加 unix_socket 认证功能。
📋 目录
  1. 原因分析
  2. 解决方案
  3. 注意事项
  4. 参考来源
A A

MariaDB 10.5 杀掉长事务连接与 MySQL 8.0 操作命令有什么不同?

核心结论:根据现有公开资料,目前未找到 MariaDB 10.5 与 MySQL 8.0 在杀掉长事务连接命令上的具体性能差异数据,但两者在版本特性上存在明确差异,如 MySQL 8.0.18 支持 auth_socket 插件,而 MariaDB 10.4.6 已添加 unix_socket 认证功能。

原因分析

MariaDB 是 MySQL 源代码的一个分支,主要由开源社区维护,采用 GPL 授权许可。从版本演进来看,MariaDB 从 10.0.0 版(2012 年 11 月 12 日发布)开始不再依照 MySQL 的版号,10.0.9 版起使用 XtraDB 来代替 MySQL 的 InnoDB。到了 MariaDB 10.3.7 及更高版本,使用的是 InnoDB,但实现与 MySQL 中的 InnoDB 有很大不同。

在杀掉长事务连接的操作上,两者理论上使用相同的 SQL 命令(KILL CONNECTION 或 KILL QUERY),但由于底层存储引擎和线程管理模型的差异,实际执行效果可能存在区别。根据知识库资料,MariaDB 从 5.1 版本开始默认使用 XtraDB 存储引擎,在 CPU 多核条件下,XtraDB 能够更有效地使用内存,并且性能更高。

解决方案

1. 查看长事务连接

在 MySQL 8.0 和 MariaDB 10.5 中,都可以使用以下命令查看当前连接:

SHOW PROCESSLIST;

或者查询 information_schema 表获取更详细信息:

SELECT * FROM information_schema.PROCESSLIST WHERE COMMAND != 'Sleep';

根据 MySQL 8.0 的特性,还可以查询 performance_schema 获取更详细的会话信息。

2. 杀掉连接的标准命令

两者的基本语法相同:

KILL [CONNECTION|QUERY] processlist_id;

区别在于:

  • MySQL 8.0 支持KILL CONNECTIONKILL QUERY两种模式
  • MariaDB 10.5 同样支持这两种模式,但在处理长事务时的回滚行为可能不同

3. 批量杀掉长事务连接

可以使用以下脚本批量处理(适用于两者):

SELECT CONCAT('KILL ', ID, ';') FROM information_schema.PROCESSLIST WHERE TIME > 300 AND COMMAND != 'Sleep';

MariaDB 10.5 杀掉长事务连接与 MySQL 8.0 操作命令有什么不同?

将查询结果复制执行即可批量杀掉超过 300 秒的连接。

注意事项

1. 身份认证插件差异:MySQL 8.0 开始将 caching_sha2_password 作为默认的身份验证插件,而 MariaDB 10.4 身份验证插件仍为 mysql_native_password。如果升级数据库至 8.0 版本,对应用程序 jdbc 驱动兼容性不友好,最快的方法需要将默认的 caching_sha2_password 改为 mysql_native_password。

2. 配置方法:可以直接写死在 my.cnf,重启 mysqld 服务永久生效:

[mysqld]
default_authentication_plugin = mysql_native_password

3. 存储引擎差异:在 MariaDB 10.3.7 和更高的版本中,使用的是 InnoDB,它的实现与 MySQL 中的 InnoDB 有很大的不同。在这些版本中,InnoDB 不再与 MySQL 发行版本相关联。

4. 自增主键行为:在 MySQL 5.7 及更早版本中,重启后自增 ID 会丢失;在 MySQL 8.0 版本中,该值不再丢失。这是两者的一个重要差异点。

5. 目前公开资料中未找到关于杀掉长事务连接的具体性能对比数据(如耗时、成功率等),建议在实际环境中进行测试验证。

参考来源

来源:技术知识库 - MySQL 8.0 与 MariaDB 10.4 对比分析(2019 年 12 月 22 日资料)

来源:技术知识库 - MariaDB 内存占用优化配置(2026 年 4 月 14 日资料)

来源:技术知识库 - MySQL 运维进阶指南(2025 年 1 月 23 日发布)

来源:技术知识库 - MariaDB 与 MySQL 比较(2022 年 2 月 28 日撰)