MySQL数据恢复工具binlog2sql binlog2sql是一个开源的Python开发的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,以便做数据恢复。 主要功能: 将Binlog解析为SQL语句 将Binlog解析为回滚的SQL语句 开源地址: github.com/danfengcao/binlog2sql 支持的版本: Python 2.7, 3.4+ MySQL 数据运维 2023-08-15 大猫
MySQL主从复制从库SQL线程源码分析 MySQL主从复制通过Binlog进行数据传输,主库写入数据,生成Binlog,通过dump线程将Binlog发送给从库,从库IO线程接收Binlog并写入自己的relay log,SQL线程应用relay log里的事务。本文结合MySQL源码,分析SQL线程的主要处理过程。 MySQL源码版本:5.7.19 1. SQL线程启动 MySQL从库在执行start slave命令时,在MySQL内 数据运维 2023-08-15 贤蛋大眼萌
oracle PL/SQL简单说明 PL/SQL块是一个可执行的程序。一个PL/SQL代码块,不管是封装在过程等程序单元中还是封装在指定为自由形式的匿名块中,都由下面的结构组成,总共有4个关键语句,其中只有两个是强制性的。 DECLARE:为可选项,它声明程序变量和游标。 BEGIN:这条强制性的语句指出,SQL和PL/SQL语句将跟在它后面。 EXCEPTION;这条可选的语句规定如何处理错误。 END:这条强制性的语句标志PL/ 数据运维 2023-08-15 法医
SQL 审核工具 SQLE 2.2308.0pre2发布,Java 应用零成本接入 SQLE,数据源新增 OB Oracle 模式 【企业版】 1. Java 应用零成本接入 SQLE 本期在扫描任务中新增了对 Java 探针方式的支持,将 Java 应用零成本地接入 SQLE。开发人员和 DBA 可以通过任务详情及审核报告掌握应用内的 SQL 及对应审核结果,对 Java 进程中的 SQL 进行质量管控。下面以 SurveyKing 应用为例,进行简单的功能试用: 1. 创建应用程序 SQL 抓取扫描任务。 注:添加的数据 数据运维 2023-08-15 穿过生命散发芬芳
oracle PLSQL 使用游标 2 游标是指向私有SQL区(private SQL area)及其关联的共享SQL区(shared SQL area)的句柄 (handle,一种允许程序访问某一资源的内存结构)。如图2-1所示,尽管句柄是客户端内存结构,但它指向了服务器进程的内存结构,转而指向存储在SGA中的内存结构,更确切地说是库缓存中的内存。 游标是指向私有SQL 区及其关联的共享SQL 区的句柄 私有SQL区存储诸如绑定变量值 数据运维 2023-08-15 宇宙之一粟
故障案例 | 一次慢SQL优化分析全过程 客户发给我一个SQL,让我看看,为什么执行几分钟没有执行完。 我第一眼看到SQL的时候,我也觉得很简单,优化过程也比较简单,但是带来的分析过程与经验还是值得分享的。 SQL语句如下: update ap_receive_benefits_log set orderstate= i_orderstate where requestid = i_orderid; 但是这个SQL执行时被严重阻 数据运维 2023-08-15 剑圣无痕
相同执行计划,为何有执行快慢的差别 前言 场景复现 新的技巧 总结 前言 今天遇到一个很神奇的现象,在数据库中,相同的执行计划,执行SQL所需要的时间相差很大,执行快的SQL瞬间出结果,执行慢的SQL要几十秒才出结果,一度让我怀疑是数据库抽风了,后面才发现是见识不足,又进入了知识空白区。 场景复现 数据库版本使用的是8.0.23 MySQL Community Server - GPL 由于生产环境数据敏感,禁止随意折腾,我在自己的 数据运维 2023-08-15 向阳逐梦
有趣的SQL DIGEST SQL DIGEST是什么 SQL DIGEST有什么作用 代码中与SQL DIGEST相关的处理函数 常见问题 SQL DIGEST是什么 DIGEST TEXT DIGEST TEXT本质是一种SQL语句规范化后将常量替换成'?'的运算结果,STATEMENT_DIGEST_TEXT函数用于计算语句的DIGEST TEXT(摘要文本) mysql> SELECT STATEMENT_DI 数据运维 2023-08-15 贤蛋大眼萌
包拯断案 | 别再让慢sql背锅@还故障一个真相 提问/ 作为DBA运维的你是否有过这些苦恼? 1)什么?又有告警啦,CPU咋又飙高啦?IO又打满啦? 对服务器赶紧一顿操作猛如虎,然并卵,故障犹如股市大盘,依然坚挺,还有客户、领导在后面排队督军,此时谁来help我呢? 2)有时候出去面试,明明感觉和面试官聊的很好,但面试完成后就没有后续,是否有过疑惑,这是why? 面试官:请给出数据库实例所在的物理机上CPU飙高及IO飙高的故障排查思路。 应聘者 数据运维 2023-08-15 张二河
浅谈在MySQL体系下SQL语句是如何在系统中执行的及可能遇到的问题 ... SQL语句大家并不陌生,但某种程度上来看,我们只是知道了这条语句是什么功能,它可以给我们得到什么样的结果,但我们如果把这条语句写错或是数据库表设计上有什么缺陷,会引发什么错误我们却无从得知,所以今天想分享一下在MySQL体系下SQL语句大致上是如何在系统中执行的,在以后SQL语句提示错误时将更好定位问题。 1、问题导入 我们以一条SELECT语句为例,我们知道SELECT语句是属于我们的DML下的 数据运维 2023-08-15 穿过生命散发芬芳
浅谈mysql语法解析调试方法 本文向您介绍一种利用mysql解析器和bison的调试选项进行sql语法解析跟踪的方法。 数据库开发过程中我们常会遇到修改sql语法的需求。我们知道,mysql的sql解析器是基于yacc文法,采用EBNF格式进行规则描述(sql/sql_yacc.yy),并借助bison工具生成(sql_yacc.h, sql_yacc.cc), 所以修改sql语法,不可避免地要和这些yacc文法打交道,对sq 数据运维 2023-08-15 张二河
MySQL视图介绍 视图定义 视图是一种有结构的虚拟表,本身不存放数据,视图中数据来源于真实的表,真实的表也被称之为基表。 视图作用 简化SQL语句: 比如将一条多表联合查询做成视图,后续直接SELECT * 视图进行查询即可。 相对安全的权限控制: 针对不同应用只需要建立对应视图表,提供所需要的字段信息,应用无法感知到其他字段信息。 保障数据安全: 对视图进行删除操作不会影响基表的数据。 创建视图 基本语法 CRE 数据运维 2023-08-15 大猫
MySQL 的prepare使用中的bug解析过程 一、问题发现 在一次开发中使用 MySQL PREPARE 以后,从 prepare 直接取 name 赋值给 lex->prepared_stmt_name 然后给 EXECUTE 用,发现有一定概率找不到 prepare stmt 的 name,于是开始动手调查问题发生的原因。 SQL语句示例: CREATE TABLE t1 (a INT, b VARCHAR(10));PREPARE 数据运维 2023-08-15 宇宙之一粟
MySQL源码分析之SQL函数执行 1.MySQL中执行一条SQL的总体流程 2.SQL函数执行过程 1.MySQL中执行一条SQL的总体流程 一条包含函数的SQL语句,在MySQL中会经过: 客户端发送,服务器连接,语法解析,语句执行的过程。 调试源码,分析函数的具体执行过程,在客户端,执行select to_char(‘test’) from dual。 跟踪堆栈:pthread_start→handle_one_connect 数据运维 2023-08-15 捡田螺的小男孩
数据库服务器CPU高 使用此脚本有如下四个前提 1、当使用top 可以看到mysqld占用CPU高达百分之好几百 2、使用top -Hp `pidof mysqld`可以看到每个线程使用的CPU高达百分之90以上 3、并且在慢日志设置为1秒都抓不到慢SQL(因为有的时候SQL语句通过消耗资源来达到快速执行的目的) 4、可以通过如下脚本抓取精确的SQL语句 cat /tmp/sql.log就可以看到SQL,但是有的执行很 数据运维 2023-08-15 大猫
零基础小白学习数据库(2)SQL概述+基本SELECT语句 一、SQL概述 1.1SQL背景知识 SQL结构化查询语言,是使用关系模型的数据库应用语言,与数据直接打交道,由IBM上世纪70年代开发出来,后由美国ANSI开始指定SQL标准。 SQL学习可以前往https://www.w3school.com.cn/sql/index.asp 不同的数据库生产厂商都支持SQL语言,但都有特有的内容 1.2SQL语言排行 自从SQL加入了编程语言排行榜,一直保持 数据运维 2023-08-15 大猫
0基础学MySQL数据库—从小白到大牛(14)存储过程与函数 MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。 存储过程概述 理解 存储过程的英文是Stored Procedure。它的思想很简单,就是一组经过预先编译的 SQL 语句的封装。执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服 数据运维 2023-08-15 大树
0基础学MySQL数据库—从小白到大牛(20)大小写规范、sql 一、SQL大小写规范 Windows和Linux平台区别 在 SQL 中,关键字和函数名是不用区分字母大小写的,比如 SELECT、WHERE、ORDER、GROUP BY 等关键字,以及 ABS、MOD、ROUND、MAX 等函数名。 不过在 SQL 中,你还是要确定大小写的规范,因为在 Linux 和 Windows 环境下,你可能会遇到不同的大小写问题。 windows系统默认大小写不敏感 数据运维 2023-08-15 LOVEHL^ˇ^
重现一条简单SQL的优化过程 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者: JennyYu 文章来源:GreatSQL社区投稿 背景 接到客户诉求说一条SQL长时间运行不出结果,让给看看怎么回事,SQL不复杂,优化措施也不复杂,但是要想SQL达到最优状态,也是需要经过一番考量并做出选择的。下面借实验还原一下此SQL优 数据运维 2023-08-15 Escape
MySQL8.0 优化器介绍(一) GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者: 奥特曼爱小怪兽 文章来源:GreatSQL社区原创 前言 线上,遇到一些sql性能问题,需要手术刀级别的调优。optimizer_trace是一个极好的工具,已经有很多资料介绍optimizer_trace怎么使用与阅读。有必要再介绍一下我们 数据运维 2023-08-15 Escape