摘要:
执行了以下一个很慢的 SQL,但是在慢查询日志中却没有发现对应的 SQL 语句。 > select count(*) from myabc_abcde_expo_vv; + + | count(*) | + + | 509600169 | + + 1 row in set (3 min 3.76 s 阅读全文
随笔分类 - MySQL
MySQL 的内部临时表
2025-01-03 20:04 by abce, 85 阅读, 收藏, 编辑
摘要:
在有些情况下,MySQL Server 会在处理语句时创建内部临时表。用户无法直接控制这种情况何时发生。 通常情况下,内部临时表首先保留在内存中,以获得最佳查询性能。为避免内存分配过多,MySQL 提供了参数,可用于设置内存限制。当达到该限制时,内部临时表就会溢出到磁盘存储。MySQL 可能会为内存 阅读全文
MySQL 系统变量和 SET 命令
2024-12-08 18:32 by abce, 159 阅读, 收藏, 编辑
摘要:
MySQL 的系统变量配置了 MySQL Server 如何运行,SET 语句用于修改系统变量。MySQL SET 命令有多种选项,用于指定如何以及何时修改系统变量。重要的是要了解这些修改如何反映在当前会话(连接)、以后的会话以及数据库服务器重启后。 用户可以使用 SET 修改的变量由其权限级别决定 阅读全文
MySQL 8 复制性能的增强
2024-11-15 14:22 by abce, 64 阅读, 收藏, 编辑
摘要:
新的复制时间戳 MySQL主从复制环境,最常见的任务是确保复制确实在进行,而且主从之间没有发生错误。常用的命令是 show slave status,该命令提供了从库线程的状态信息。因此,通常需要每个从库上执行 show slave status并检查输出结果。 输出内容中,有个参数指标 "Seco 阅读全文
MySQL从节点异常宕机重启后遇到主键冲突
2024-10-31 13:17 by abce, 88 阅读, 收藏, 编辑
摘要:
一台虚机在迁移过程中遇到点问题,然后运维做了重启的操作。重启后,发现该虚机中的 mysql 从库与主库的同步失败了。登录后查看,发现 sql thread 停止运行了: mysql> show slave status\G *************************** 1. row *** 阅读全文
MySQL的临时表空间
2024-10-30 11:24 by abce, 99 阅读, 收藏, 编辑
摘要:
InnoDB使用会话临时表空间和全局临时表空间。 会话临时表空间 会话临时表空间用于存储用户创建的临时表,以及在InnoDB被配置为磁盘上内部临时表的存储引擎时由优化器创建的内部临时表。从 MySQL 8.0.16 开始,磁盘上内部临时表使用的存储引擎是InnoDB。(以前,存储引擎由interna 阅读全文
MySQL Error Log: Got packets out of order
2024-09-18 14:29 by abce, 306 阅读, 收藏, 编辑
摘要:
在MySQL错误日志中发现有偶发的如下信息: 2024-09-13T15:55:29.489324+08:00 26750047 [Note] [MY-010914] [Server] Got packets out of order 2024-09-13T15:55:29.544688+08:00 阅读全文
欺骗性的警告信息:InnoDB 行大小限制的奇特案例
2024-09-01 17:01 by abce, 157 阅读, 收藏, 编辑
摘要:
记得之前在测试环境遇到过类似的问题,让开发缩短了列的长度,但是没有进一步深究,今天看到这个文章,又做了一下模拟,发觉问题还存在,需要继续关注。以下是模拟学习的过程。原文地址:https://www.percona.com/blog/when-warnings-deceive-the-curious- 阅读全文
MySQL 持久化系统变量
2024-08-23 14:27 by abce, 62 阅读, 收藏, 编辑
摘要:
set persist会将变量持久化到文件 mysqld-auto.cnf 文件中,该文件位于数据目录下。reset persist会移除 mysqld-auto.cnf 文件中持久化的变量。 MySQL 可以在运行时持久化全局系统变量。虽然许多系统变量可以在启动时通过 my.cnf 配置文件设置, 阅读全文
MySQL 通过set global设置变量的注意点
2024-08-21 13:25 by abce, 154 阅读, 收藏, 编辑
摘要:
今天有人问,为什么他修改动态变量 log_output 的时候,部分可以设置成功,部分设置失败,具体现象如下: root@localhost (none)>show variables like 'log_output'; + + + | Variable_name | Value | + + + 阅读全文
MySQL 组复制故障恢复的有效策略
2024-08-19 09:30 by abce, 363 阅读, 收藏, 编辑
摘要:
没有MGR环境,只是学学别人经验。原文地址:https://www.percona.com/blog/effective-strategies-for-recovering-mysql-group-replication-from-failures/ 组复制是一种容错/高可用复制拓扑结构,可确保在主 阅读全文
MySQL 如何拥有针对特定主机的单一用户账户
2024-07-24 17:35 by abce, 23 阅读, 收藏, 编辑
摘要:
MySQL 如何拥有针对特定主机的单一用户账户? 通常,我们会创建用户名相同但主机/IP 不同的独立用户账户,如 <USER>@<HOST1>, <USER>@<HOST2> ....。<USER>@<HOSTn>。然后,给予这些用户相同的授权(权限/角色)和设置(密码、SSL 等)。 除了以上的做 阅读全文
为什么升级到 MySQL 8.x 后,带有多个 IN 值的查询会更昂贵?
2024-07-01 19:46 by abce, 217 阅读, 收藏, 编辑
摘要:
MySQL的范围优化 有多个 IN 值的查询在 MySQL 查询优化器中,会使用 "等值范围优化"(Equality Range Optimization)。假设我们的查询是这样的: SELECT COUNT(*) FROM test.sbtest1 WHERE id IN (10,50,200,. 阅读全文
MySQL 常见性能问题排除
2024-06-30 17:13 by abce, 277 阅读, 收藏, 编辑
摘要:
随着时间的推移,即使是设计良好的数据库也会遇到性能问题,这些问题源于各种因素,如数据的增长、次优的索引策略、优化不佳的查询或不均衡的服务器配置。 常见的性能问题 1.查询速度慢 最常见的性能问题之一是查询执行缓慢。缓慢的查询会增加等待时间,阻碍应用程序的响应速度,从而严重影响用户体验。这些缓慢的查询 阅读全文
MySQL 复制环境如何处理 'Got Fatal Error 1236' 或 MY-013114 Error
2024-06-28 17:39 by abce, 485 阅读, 收藏, 编辑
摘要:
MySQL 复制环境可能会遇到以下错误:"Got fatal error 1236 from source when reading data from binary log"。 本文试图重新解释导致这一错误的典型原因以及处理这一问题的方法。 错误事务(errant transaction) 比如开 阅读全文
如何区分 Connection、Thread和Session
2024-06-28 11:07 by abce, 155 阅读, 收藏, 编辑
摘要:
什么是 Connection Connection 只是客户端应用程序/用户与 MySQL 数据库服务器之间建立的成功连接。它允许客户端发送查询、接收结果并与数据库交换数据。 每个 Connection 都代表一个单独的会话,使客户端可以相互独立地执行查询和事务。单个 MySQL 服务器可以处理来自 阅读全文
使用 MySQL Shell 进行 MySQL 升级检查
2024-06-26 11:23 by abce, 113 阅读, 收藏, 编辑
摘要:
如果有一种工具可以查看我们现有的数据库,并检查升级到新版本是否存在任何问题,那岂不是很有帮助?MySQL Shell 可以帮你解决这个问题。 MySQL Shell中的全局util对象有一个名为checkForServerUpgrade()的方法,可以检查当前数据库,找出升级到新版本MySQL的任何 阅读全文
pt-online-schema-change 完成部分数据归档和 schema 更改
2024-06-25 08:58 by abce, 207 阅读, 收藏, 编辑
摘要:
从 Percona Toolkit 3.6.0 开始,pt-online-schema-change 支持 -where 选项,因此不仅可以实时更改表定义,还可以只复制满足特定条件的行。 在更改表定义时,可能并不需要复制所有数据。例如,如果表太大,而你只需要最近的数据。 要完成这项工作,pt-onl 阅读全文
查看使用 MySQL Shell 的连接状态
2024-06-24 17:09 by abce, 41 阅读, 收藏, 编辑
摘要:
启动 MySQL Shell mysqlsh 上面的命令只是启动 MySQL Shell,并没有连接到 MySQL 实例。这个时候可以查看一下状态: \status 输出结果如下: MySQL Shell version 8.0.37 Not Connected. 该输出显示了当前的 MySQL 版 阅读全文
管理 MySQL Shell 配置选项
2024-06-20 13:23 by abce, 44 阅读, 收藏, 编辑
摘要:
与任何工具一样,MySQL Shell 的开箱即用配置可能无法满足每个用户在任何情况下的需求。我们需要一种方法来轻松查看、更新和持续(如有必要)更改默认配置。有一条命令可以帮助我们管理 MySQL Shell 配置。这条命令就是 \option。 查看帮助 MySQL localhost JS > 阅读全文