收藏本版 |訂閲

MySQL论坛 今日: 0|主題: 318|排名: 45 

  • MySQL 25 MySQL是怎么保证高可用的?
    正常情况下,只要主库执行更新生成的所有binlog,都可以被传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最终一致性,而MySQL要提供的高可用能力,只有最终一致性是不够的。 主备延迟 主备切换可能是一个主动运维动作,比如软件升级、主库所在机器按计划下线等,也可能是被动操作,比如主库所在机器掉电。 ...
    019 浅语 发表于 2025-8-9 MySQL论坛
  • 慢SQL优化实战:从一例线上慢SQL探究执行引擎工作过程
    作者: vivo 互联网服务器团队- Li Xin 本文通过一个线上慢SQL案例,介绍了Join的两种算法和Order by的工作原理,并通过Explain和Optimizer_trace工具完整推演了慢SQL的执行过程。基于对原理和执行过程的分析,本文给出一种“引导执行引擎选择效率更高的算法”的方案,从而使查询性能得到大幅提升。 1、线上慢 SQL 背景 ...
    045 敢说 发表于 2025-8-7 MySQL论坛
  • 为什么要有 Buffer Pool?Mysql缓存能否替代Redis?
    查询缓存的作用? 执行查询语句的时候,会先查询缓存。不过,MySQL 8.0 版本后移除,因为这个功能不太实用 开启查询缓存后在同样的查询条件以及数据情况下,会直接在缓存中返回结果。这里的查询条件包括查询本身、当前要查询的数据库、客户端协议版本号等一些可能影响结果的信息。 查询缓存不命中的情况: 任何两个查询在 ...
    081 朱新明 发表于 2025-8-7 MySQL论坛
  • 聚集索引与非聚集索引的区别
    聚集索引(Clustered Index)和非聚集索引(Non-Clustered Index)是索引设计的核心概念,二者的本质区别体现在 与数据物理存储的关联方式 上,这种区别直接决定了它们的性能特性和适用场景。 我们平时说的 聚簇索引 和 非聚簇索引,其实就是 聚集索引 与 非聚集索引,同一个东西,只是叫法不一样。现在在比 ...
    068 晏明 发表于 2025-8-5 MySQL论坛
  • MySQL 24 MySQL是怎么保证主备一致的?
    MySQL主备的基本原理 状态1中,客户端读写都是直接访问节点A,节点B只是将节点A的更新同步过来在本地执行。当需要主备切换时,就变成状态2。 状态1中没有直接访问节点B,但仍然建议把节点B设置成只读模式,原因如下: 有时一些运营类的查询语句会被放到备库上查看,设置为只读可以防止误操作; 防止切换逻辑出现双写等 ...
    084 九海森林 发表于 2025-8-3 MySQL论坛
  • MySQL 23 MySQL是怎么保证数据不丢的?
    只要redo log和binlog保证持久化到磁盘,就能确保MySQL异常重启后,数据可以恢复。本文讲讲MySQL写入binlog和redo log的流程。 binlog的写入机制 binlog的写入逻辑比较简单:事务在执行过程中,先把日志写到binlog cache,事务提交的时候,再把binlog cache写到binlog文件。 一个事务的binlog不能拆开,因此不论这个事务多 ...
    030 好运一直都在 发表于 2025-8-2 MySQL论坛
  • 工具分享-通过开源工具 tuning-primer快速巡检MySQL5.7
    工具分享-通过开源工具 tuning-primer快速巡检MySQL5.7 简介 今天推荐一个开源的调优脚本tuning-primer.sh,这是一个非常实用的性能调优工具,能够快速检查 MySQL 的运行状态,生成详细的性能报告,并提供优化建议。通过这个脚本,可以更高效地完成调优工作,节省大量的时间和精力。 使用场景 快速识别 MySQL服务器的性能 ...
    084 天翻地覆概而康 发表于 2025-8-1 MySQL论坛
  • 分享一个 MySQL binlog 分析小工具
    去年写的一个小工具,用于在线获取 MySQL binlog 的大小、开始时间、结束时间和持续时长。 什么场景下会用上这个工具呢? 云服务场景,无法登录 MySQL 服务器查看 binlog 的时间戳信息。 主从延迟时,可以使用这个工具来查看 binlog 的大小或者某个时间段 binlog 的写入量。 基于时间点的恢复时,可以根据操作的大致时间来 ...
    025 禾口 发表于 2025-7-28 MySQL论坛
  • MySQL 22 MySQL有哪些“饮鸩止渴”提高性能的方法?
    有时候,在业务高峰期,生产环境的MySQL压力太大,没法正常响应,需要短期内、临时性地提升一些性能。本文就来讲讲一些临时方法,并着重说它们可能存在的风险。 短连接风暴 正常的短连接模式是连接到数据库后,执行很少的SQL语句就断开,下次需要的时候再重连。如果使用的是短连接,在业务高峰期时,可能出现连接数突然暴涨 ...
    091 史丹利 发表于 2025-7-26 MySQL论坛
  • docker部署MySQL8
    docker部署MySQL 1、创建数据存放目录 mkdir -p /data/docker/mysql/{data,conf} 2、配置MySQL配置文件 cat <<EOF> /data/docker/mysql/conf/my.cnf [client] default-character-set=utf8mb4 # 客户端默认字符集 utf8mb4,支持表情符号 [mysql] default-character-set=utf8mb4 # mysql 命令行默认 utf ...
    022 缓行 发表于 2025-7-25 MySQL论坛
  • CTE查询数据量过大导致MySQL 8.0发生CORE问题解析
    CTE查询数据量过大导致MySQL 8.0发生CORE问题解析 一、问题发现 在客户现场的一次问题报告中发现某个带有CTE语句进行查询的时候,数据量少的时候没问题,但是数据量大的时候会导致core。注意:这个问题只在 MySQL 8.0.32 版本才会复现,最新的8.4.4版本没有问题。 看下面例子: 1、准备表 CREATE TABLE t1 ( ORG_ID decim ...
    053 郑晓锋 发表于 2025-7-25 MySQL论坛
  • MySQL 21 为什么我只改一行的语句,锁这么多?
    上篇文章中,介绍了间隙锁和临键锁,但并未说明加锁规则。本文首先介绍加锁规则,由于间隙锁在可重复读隔离级别下才有效,因此接下来的内容默认在可重复读隔离级别下。 加锁规则(限5.x系列<=5.7.24, 8.0系列<=8.0.13): 原则1:加锁的基本单位是临键锁,是一个前开后闭区间; 原则2:查找过程中访问到的对象才会加锁 ...
    064 舒肤佳 发表于 2025-7-24 MySQL论坛
  • Mysql查询语句执行流程?更新语句执行流程?
    查询语句执行流程 查询语句的执行流程如下:权限校验、查询缓存、分析器、优化器、权限校验、执行器、引擎。 举个例子,查询语句如下: select * from user where id > 1 and name = 'seven'; 首先,通过连接器,客户端与MySQL服务器建立连接,并完成身份认证和权限验证过程。在此过程中,客户端需要提供用户名和密码以证 ...
    036 库昊天 发表于 2025-7-24 MySQL论坛
  • MySQL的并发访问机制
    在MySQL中,锁是用于解决并发访问冲突的核心机制。当多个事务同时操作数据库中的数据时(如读取、修改、删除),可能会出现数据不一致(如脏读、不可重复读、幻读)或操作冲突(如同时修改同一行),锁的作用就是通过合理限制不同事务的操作权限,保证数据的一致性和并发操作的正确性。本文只讨论InnoDB引擎下并发访问控制 ...
    026 华健 发表于 2025-7-23 MySQL论坛
  • GreatSQL函数索引失效分析:排序规则匹配机制
    GreatSQL函数索引失效分析:排序规则匹配机制 某项目中,客户使用SQL查询时,索引未生效,经排查发现查询使用的排序规则与函数索引的排序规则不一致,导致无法使用该函数索引。 一、排序规则不匹配的测试案例 '测试表结构如下' greatsql> SHOW CREATE TABLE test_findex; +--------------+------------------------------ ...
    025 江晓虞 发表于 2025-7-23 MySQL论坛
  • 数据库隔离级别
    隔离级别决定了事务之间的可见性规则,直接影响数据库的并发性能和数据一致性。 SQL 标准定义了 4 种隔离级别,从低到高依次为:读未提交→读已提交→可重复读→串行化。隔离级别越高,对并发问题的解决能力越强,但对性能的消耗也越大(因限制了并发操作)。 一、读未提交(Read Uncommitted, RU) 定义:一个事务可以读取 ...
    012 暴富暴富 发表于 2025-7-22 MySQL论坛
  • MySQL 20 幻读是什么,幻读有什么问题?
    首先给出要用到的数据: CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c` (`c`) ) ENGINE=InnoDB; insert into t values(0,0,0),(5,5,5), (10,10,10),(15,15,15),(20,20,20),(25,25,25); 那么下面的语句,是怎么加锁的,加的锁又 ...
    055 遮伞的雨 发表于 2025-7-22 MySQL论坛
  • MySQL myisam引擎表crashed 修复:MySQL table is marked as crashed and last (automatic?) repair failed
    某系统是一个非常老的MySQL从数据库,某天收到主从复制异常的报警,发现从节点的slave_sql_running线程断开,异常日志显示MySQL *** table is marked as crashed and last (automatic?) repair failed 错误日志中显示crashed 的表为myisam引擎表,数据库引擎应该是z自动尝试过修复但是失败,这里需要执行人工修复。该异常发 ...
    097 温大爷要飞升 发表于 2025-7-22 MySQL论坛
  • MySQL 19 为什么我只查一行的语句,也执行这么慢?
    有些情况下,“查一行”也会执行特别慢,今天就看看什么情况会出现这个现象。 如果MySQL本身有很大压力,导致数据库服务器CPU占有率很高或IO利用率很高,这种情况所有语句的执行都可能变慢,不在本文讨论范围内。 为了分析,构建有10万行记录的表,建表语句如下: CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` ...
    038 小蕾蕾 发表于 2025-7-21 MySQL论坛
  • 误操作后快速恢复数据 binlog 解析为反向 SQL
    误操作后快速恢复数据 binlog 解析为反向 SQL 1.前言 本文将介绍使用 reverse_sql 工具将 GreatSQL 数据库的 binlog 解析为反向 SQL 语句。模拟误操作后,恢复数据。该工具可以帮助客户在发生事故时快速恢复数据,避免进一步的损失。使用 reverse_sql 工具非常简单,客户只需要指定肇事时间和表名即可。该工具会根据指定的 ...
    0112 川军劳务公司 发表于 2025-7-21 MySQL论坛
  • 下一頁 »

    快速發帖

    還可輸入 180 個字符
    您需要登錄後才可以發帖 登錄 | 立即注册

    本版積分規則

    相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖返回顶部