技术译文 | MySQL 8.x DDL 和查询重写插件

MySQL查询重写插件的使用 查询重写插件 从MySQL 5.7.6开始,MySQL Server支持查询重写插件,可以在服务器执行之前检查并可能修改服务器接收的语句。 以下是官方文档介绍:   预解析重写插件具有以下特点: 1.该插件允许在服务器处理之前重写到达服务器的SQL语句。 2.该插件接收一个语句字符串,并可能返回一个不同的字符串。 后解析查询重写插件具有以下特征:   1.该插件支持基于解析树的语句重写。   2.服务器解析每个语句并将其解析树传递给插件,插件可以遍历树。插件可以将原始树返回到服务器以进行进一步处理,或者构造不同的树并返回该树。 通俗来讲,是指该插件支持两种重写方式,一种是在语法解析之前,直接修 立即下载

作者:Sri Sakthivel
翻译:管长龙
本文来源:https://www.percona.com/blog/2020/08/07/mysql-8-x-ddl-rewriter-and-query-rewriter-plugins-implementation-and-use-cases/

对 MySQL 查询重写以提高性能是每个 DBA 应该意识到的重要过程,以便他们可以在运行时修复错误的查询,而无需在应用程序端更改代码。

到目前为止,MySQL 社区提供了两个内置的查询重写插件来执行此任务。

  • query rewriter plugin:它支持 INSERT / UPDATE / DELETE / REPLACE 语句,在 MySQL 8.0.12 引入。
  • ddl_rewritter plugin:它支持 CREATE TABLE 语句。在 MySQL 8.0.16 引入。

本文将解释实现和插件测试的完整过程。该测试基于 MySQL 8.x 功能。

一、查询重写插件

该插件将有助于修改服务器在执行之前接收到的 SQL 语句。 在 MySQL 8.0.12 之前,该插件仅支持 SELECT。 从 MySQL 8.0.12 起,该插件还支持 INSERT / UPDATE / DELETE / REPLACE。

1.1 准备环境

有两个 SQL 文件可以执行安装和卸载操作。这些文件位于共享目录下。

	mysql> show global variables like 'lc_messages_dir';
	+-----------------+----------------------------+
	| Variable_name   | Value                      |
	+-----------------+----------------------------+
	| lc_messages_dir | /usr/share/percona-server/ |
	+-----------------+----------------------------+
	1 row in set (0.01 sec)
	
	[root@hercules7sakthi3 ~]# cd /usr/share/mysql-8.0/
	[root@hercules7sakthi3 mysql-8.0]# ls -lrth | grep -i rewriter
	-rw-r--r--. 1 root root 1.3K Mar 26 14:16 uninstall_rewriter.sql
	-rw-r--r--. 1 root root 2.2K Mar 26 14:16 install_rewriter.sql
  • 我们可以在运行时实现重写器插件;
  • 加载 SQL 文件 “install_rewritter.sql” 时,它将安装插件 “rewriter.so”,并为操作创建其自己的数据库,表和函数。

通过加载安装程序SQL文件来安装插件:

	[root@hercules7sakthi3 mysql-8.0]# mysql -vv < install_rewriter.sql | grep -i 'create\|install\|drop'
	CREATE DATABASE IF NOT EXISTS query_rewrite
	CREATE TABLE IF NOT EXISTS query_rewrite.rewrite_rules (
	INSTALL PLUGIN rewriter SONAME 'rewriter.so'
	CREATE FUNCTION load_rewrite_rules RETURNS STRING
	CREATE PROCEDURE query_rewrite.flush_rewrite_rules()
	
	mysql> show schemas like 'query_rewrite';
	+--------------------------+
	| Database (query_rewrite) |
	+--------------------------+
	| query_rewrite            |
	+--------------------------+
	1 row in set (0.00 sec)
	
	mysql> show tables from query_rewrite;
	+-------------------------+
	| Tables_in_query_rewrite |
	+-------------------------+
	| rewrite_rules           |
	+-------------------------+
	1 row in set (0.05 sec)
	
	mysql> show create table query_rewrite.rewrite_rules\G
	*************************** 1. row ***************************
	       Table: rewrite_rules
	Create Table: CREATE TABLE `rewrite_rules` (
	  `id` int NOT NULL AUTO_INCREMENT,
	  `pattern` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
	  `pattern_database` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
	  `replacement` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
	  `enabled` enum('YES','NO') CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT 'YES',
	  `message` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
	  `pattern_digest` varchar(64) DEFAULT NULL,
	  `normalized_pattern` varchar(100) DEFAULT NULL,
	  PRIMARY KEY (`id`)
	) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
	1 row in set (0.00 sec)
	
	mysql> select plugin_name,plugin_status, plugin_version from information_schema.plugins where plugin_name='Rewriter';
	+-------------+---------------+----------------+
	| plugin_name | plugin_status | plugin_version |
	+-------------+---------------+----------------+
	| Rewriter    | ACTIVE        | 0.2            |
	+-------------+---------------+----------------+
	1 row in set (0.00 sec)

1.2 测试案例

创建表 qrw8012,并做了一些记录以供测试。

	mysql> show create table qrw8012\G
	*************************** 1. row ***************************
	       Table: qrw8012
	Create Table: CREATE TABLE `qrw8012` (
	  `id` int NOT NULL AUTO_INCREMENT,
	  `name` varchar(16) DEFAULT NULL,
	  `dob` date DEFAULT NULL,
	  PRIMARY KEY (`id`),
	  KEY `idx_name` (`name`)
	) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
	1 row in set (0.00 sec)
	
	mysql> select * from qrw8012;
	+----+--------+------------+
	| id | name   | dob        |
	+----+--------+------------+
	|  1 | jc     | 0001-01-01 |
	|  2 | sriram | 1993-06-17 |
	|  3 | vijaya | 1969-11-23 |
	|  4 | durai  | 1963-10-19 |
	|  5 | asha   | 1992-06-26 |
	|  6 | sakthi | 1992-07-13 |
	+----+--------+------------+
	6 rows in set (0.00 sec)

1.3 需求描述

要求是将 name 列从 sakthi 更新为 hercules7sakthi,其中 id =6。来自应用程序的 UPDATE 查询如下所示:

	update qrw8012 set name='hercules7sakthi' where LOWER(name)='sakthi';

从数据库的角度来看,所有的行都仅使用小写字母进行更新。 因此,这里不需要 LOWER 功能。 同样,在 WHERE 子句列上使用 LOWER 函数将隐藏该特定列的索引。在我们的例子中,查询将扫描整个表(FTS)。

	mysql> show create table qrw8012\G
		……
	  KEY `idx_name` (`name`)
		……
	1 row in set (0.18 sec)
	
	mysql> explain select * from qrw8012 where LOWER(name)='sakthi'\G
	*************************** 1. row ***************************
	           id: 1
	  select_type: SIMPLE
	        table: qrw8012
	   partitions: NULL
	         type: ALL
	possible_keys: NULL
	          key: NULL
	      key_len: NULL
	          ref: NULL
	         rows: 6
	     filtered: 100.00
	        Extra: Using where
	1 row in set, 1 warning (0.00 sec)

它将进行全表扫描(FTS)。

注意:出于分析目的,我已将 UPDATE 转换为 SELECT。

在上面的示例中,name 列有索引。 但是,它仍然不能与 LOWER 功能一起使用。 如果删除 LOWER 函数,则索引可用。 让我们看看如何使用查询重写插件解决此问题。

第一步,我需要更新 rewrite_rules 表中的查询规则。 以下是更新查询规则时要遵循的关键点。

  • 我们必须使用查询摘要输出来配置查询规则;
  • 修改规则表后,我们始终需要调用函数 flush_rewrite_rules;
  • 如果错误地配置了查询规则,则会收到错误消息 “ERROR 1644(45000):某些规则加载失败。” 在刷新函数调用期间;
  • 我们可以检查警告消息以了解是否应用了查询规则。
	mysql> insert into rewrite_rules
	    -> (id,pattern_database,pattern,replacement) values
	    -> (1,'percona','update qrw8012 set name = ? where LOWER(name) = ?','update qrw8012 set name = ? where name = ?');
	Query OK, 1 row affected (0.01 sec)
	
	mysql> call query_rewrite.flush_rewrite_rules();
	Query OK, 1 row affected (0.03 sec)
	
	mysql> select id,pattern_database,pattern,replacement from rewrite_rules\G
	*************************** 1. row ***************************
	              id: 1
	pattern_database: percona
	         pattern: update qrw8012 set name = ? where LOWER(name) = ?
	     replacement: update qrw8012 set name = ? where name = ?
	1 row in set (0.00 sec)

我配置了查询规则,因此现在执行查询。

	mysql> update qrw8012 set name='hercules7sakthi' where LOWER(name)='sakthi';
	Query OK, 1 row affected, 1 warning (0.02 sec)
	Rows matched: 1  Changed: 1  Warnings: 1
	
	mysql> show warnings\G
	*************************** 1. row ***************************
	  Level: Note
	   Code: 1105
	Message: Query 'update qrw8012 set name='hercules7sakthi' where LOWER(name)='sakthi'' rewritten to 'update qrw8012 set name = 'hercules7sakthi' where name = 'sakthi'' by a query rewrite plugin
	1 row in set (0.00 sec)
	
	Output from general log :

	2020-06-22T11:20:36.952153Z   22 Query update qrw8012 set name = 'hercules7sakthi' where name = 'sakthi'

要卸载该插件,您必须加载 SQL 文件 uninstall_rewriter.sql 。它将删除数据库,功能并卸载插件。

	[root@hercules7sakthi3 mysql]# cat /usr/share/mysql-8.0/uninstall_rewriter.sql 
	...
	...
	DROP DATABASE IF EXISTS query_rewrite;
	DROP FUNCTION load_rewrite_rules;
	UNINSTALL PLUGIN rewriter;

二、DDL 重写插件

MySQL 社区团队在 MySQL 8.0.16 中引入了 ddl_rewriter 插件。 该插件可用于修改服务器接收的 CREATE TABLE 语句。 该插件将从 CREATE TABLE 语句中删除以下子句。

  • ENCRYPTION
  • DATA DIRECTORY
  • INDEX DIRECTORY

2.1 环境准备

使用 安装插件命令配置插件。

	mysql> install plugin ddl_rewriter soname 'ddl_rewriter.so';
	Query OK, 0 rows affected (0.04 sec)
	
	mysql> select plugin_name,plugin_status, plugin_version from information_schema.plugins where plugin_name like '%ddl%';
	+--------------+---------------+----------------+
	| plugin_name  | plugin_status | plugin_version |
	+--------------+---------------+----------------+
	| ddl_rewriter | ACTIVE        | 1.0            |
	+--------------+---------------+----------------+
	1 row in set (0.01 sec)

一旦安装了 ddl_rewriter,就可以使用 --ddl-rewriter 选项进行后续服务启动,以控制 ddl_rewriter 插件的激活。 例如,要禁用该功能:

	[mysqld]
	ddl-rewriter = OFF

2.2 测试案例

不使用 ENCRYPTION,DATA DIRECTORY 和 INDEX DIRECTORY 将表结构从源迁移到目标。

2.3 需求描述

两个 MySQL 环境,分别称为“源”和“目标”。 在源环境中,所有的表都配置了加密,并且某些表具有不同的数据合索引目录。

需要将表 ddl_rwtest ,从源迁移到目标。该表具有加密功能,并且具有不同的数据和索引目录。 不需要在目的地进行加密以及将数据和索引目录分开。

从源头来看,表结构如下所示:

	create table ddl_rwtest 
	(id int primary key, name varchar(16),dob date,msg text) 
	ENCRYPTION='Y'  
	DATA DIRECTORY = '/mysql/data'
	INDEX DIRECTORY = '/mysql/index';
过程

在第一步中,启用了 ddl_rewriter 插件,如实现部分所示。 现在,将使用相同的 SQL 命令加载结构。

	mysql> create table ddl_rwtest 
	    -> (id int primary key, name varchar(16),dob date,msg text) 
	    -> ENCRYPTION='Y'  
	    -> DATA DIRECTORY = '/mysql/data'
	    -> INDEX DIRECTORY = '/mysql/index';
	Query OK, 0 rows affected, 1 warning (0.08 sec)
	
	mysql> show warnings\G
	*************************** 1. row ***************************
	  Level: Note
	   Code: 1105
	Message: Query 'create table ddl_rwtest 
	(id int primary key, name varchar(16),dob date,msg text) 
	ENCRYPTION='Y'  
	DATA DIRECTORY = '/mysql/data'
	INDEX DIRECTORY = '/mysql/index'' rewritten to 'create table ddl_rwtest 
	(id int primary key, name varchar(16),dob date,msg text) ' by a query rewrite plugin
	1 row in set (0.00 sec)
	
	mysql> show create table ddl_rwtest\G
	*************************** 1. row ***************************
	       Table: ddl_rwtest
	Create Table: CREATE TABLE `ddl_rwtest` (
	  `id` int NOT NULL,
	  `name` varchar(16) DEFAULT NULL,
	  `dob` date DEFAULT NULL,
	  `msg` text,
	  PRIMARY KEY (`id`)
	) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
	1 row in set (0.01 sec)

从上面的日志中,ddl_rewriter 插件已从我的 SQL 命令中删除了那些加密和数据/索引目录。 您可以验证警告消息以确认这一点。

该插件将真正帮助使用逻辑备份进行大规模数据结构迁移。

结论

MySQL 社区团队正在积极地进行 Query rewrite 插件的开发,因为我们有一个来自 MySQL 8.0.16 的新的 DDL rewriter 插件。 目前,该插件仅支持 CREATE TABLE 语句,期待其他 DDL 语句的更多功能和支持。

用VSCode搭建Vue.js开发环境及Vue.js第一个应用 阅读详情

相关推荐

Unity3D 2022版如何一键安装Newtonsoft.Json?最新Package Manager教程

本文详细介绍了在Unity3D 2022及以上版本中,如何通过Package Manager一键安装和配置Newtonsoft.Json(Json.NET)。教程涵盖了从打开Package Manager、搜索并安装正确包源,到验证安装和基础使用的完整流程,旨在帮助开发者以现代化、可靠的方式集成这一强大的JSON处理框架,提升开发效率并规避手动导入的常见问题。

lg888的博客 920

MySQL重写插件

Mysql支持查询重写插件 1、是服务端插件 2、支持的语句: Mysql 8.0.12: Select 、Insert、Replace、Update、Delete; Mysql 8.0.12:仅支持Select 3、涉及的数据库:query_rewrite 表:rewrite_rules 存储过程:flush_rewrite_rules 函数:loa...

地 衣 662

手把手教你用STM32F103的普通IO口读取SSI编码器(附完整代码与示波器调试心得)

本文详细介绍了如何利用STM32F103的普通IO口读取SSI绝对式编码器数据,提供完整的硬件连接方案、精确时序控制的软件实现及示波器调试技巧。通过低成本方案实现高精度位置反馈,适用于工业自动化和机器人控制领域。

weixin_29172963的博客 452

MySQL8 中文参考(二十二)

原文:docs.oracle.com/javase/tutorial/reallybigindex.html 原文:dev.mysql.com/doc/refman/8.0/en/ddl-rewriter-installation.html 7.6.5.1 安装或卸载 ddl_rewriter 本节描述了如何安装或卸载ddl_rewriter插件。有关安装插件的一般信息,请参见 Section 7.6.1,“安装和卸载插件”。 注意 如果安装了ddl_rewriter插件,即使禁用了,也会涉及一些最

龙哥盟 684

STM32_WS2811驱动

STM32的WS2811驱动

健身房 2839

Isaac Sim/Lab & ROS2 入门教程 —— 宇树人形机器人 H1 强化学习策略部署

本文介绍了如何通过ROS2和IsaacSim运行H1人形机器人的强化学习运动策略。主要内容包括:1)设置机器人关节配置和初始位置;2)添加IMU传感器;3)配置ROS2节点以发布观测数据和接收动作指令;4)创建模拟环境并发布ROS时钟;5)最终运行ROS2策略实现对机器人的键盘控制。文中详细说明了关节参数设置、传感器配置、ROS2节点创建等关键步骤,并提供了注意事项和验证方法。完成配置后,用户可通过键盘指令控制机器人在平坦地形上的运动。

2506_90492529的博客 2169

MySQL插件开发

个人学习来的简易版 UE4 MySQL插件

weixin_44519692的博客 1241

华为OD机试真题2025双机位A卷 Python&JavaScript 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 1456

mysql 查询重写_MySQL查询重写插件的使用

查询重写插件从MySQL 5.7.6开始,MySQL Server支持查询重写插件,可以在服务器执行之前检查并可能修改服务器接收的语句。以下是官方文档介绍:预解析重写插件具有以下特点:1.该插件允许在服务器处理之前重写到达服务器的SQL语句。2.该插件接收一个语句字符串,并可能返回一个不同的字符串。后解析查询重写插件具有以下特征:1.该插件支持基于解析树的语句重写。2.服务器解析每个语句并将其解析...

weixin_42144366的博客 398

ArcGIS Pro符号化教程

本文详细介绍了ArcGIS Pro的软件设置和符号化操作步骤。主要包括:1)设置默认工程目录和关闭地图自动加载;2)创建新工程的基本流程;3)点要素的单一符号化方法,包括样式修改和图层调整;4)图表符号显示过滤器的使用,涉及字段添加、图表类型选择和背景设置。文章还提供了操作截图和数据下载链接,适合GIS初学者学习ArcGIS Pro的基础符号化操作。

WwLK123的博客 548

深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计

大家好,我是微学AI ,今天给大家介绍一下深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计。高中数学自适应测试系统旨在通过精准评估学生能力,用最少的题目发现其薄弱环节,并提供定制化的学习计划,帮助学生快速提升成绩。同时,系统结合了AI大模型实现自动判卷、生成报告,减轻教师负担,并支持个性化作业布置,使教学更加高效。学生可以清晰了解自身学习状态,教师也能获得精准的学生画像,实现差异化教学。

微学AI的博客 444

MySQL query rewrite插件简单测试

在机场继续努力一把,学习了下MySQL query rewrite这个插件,感觉还不错,j简答测试了下,已经找到Oracle FGA的影子了。MySQL的插件还是很丰富...

杨建荣的学习笔记 624

利用人工神经网络在Abaqus中实现本构模型的网格粗化计算框架:详细指南与实践

在这篇文章中,我们详细介绍了如何在Abaqus中实现基于人工神经网络(ANN)的本构模型以进行网格粗化的计算框架。我们通过两个主要模块——数据生成器模块和ANN训练模块,实现了这一计算框架,并将训练好的ANN集成到Abaqus的用户材料子程序(UMAT)中,创建了一个基于ANN的本构模型。我希望这篇文章能帮助到那些希望在Abaqus中实现基于ANN的本构模型的读者,同时,我也非常欢迎大家提出宝贵的意见和建议,让我们共同进步。

qq_38334677的博客 1714

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ogg for mysql ddl_基于ogg实现mysql到mysql之间DDL复制的一些限制

19.1 DDL复制的一些限制1、基于DDL的复制需要mysql的版本在5.7.10及以上2、不支持双向DDL复制3、不支持远程捕获4、DDL复制使用ddl_rewriter and ddl_metadata两个插件作业共享库来实现DDL语句的复制,在开始DDL复制前需要提前在MYSQL服务器上安装这两个库5、在存储过程中执行DDL语句不能被捕获CREATE PROCEDURE atssrc.ge...

weixin_42373066的博客 359

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

mysql查询插件语句_MySQL查询重写插件的使用

查询重写插件从MySQL 5.7.6开始,MySQL Server支持查询重写插件,可以在服务器执行之前检查并可能修改服务器接收的语句。以下是官方文档介绍:预解析重写插件具有以下特点:1.该插件允许在服务器处理之前重写到达服务器的SQL语句。2.该插件接收一个语句字符串,并可能返回一个不同的字符串。后解析查询重写插件具有以下特征:1.该插件支持基于解析树的语句重写。2.服务器解析每个语句并将其解析...

weixin_36429702的博客 662

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mysql 查询重写_MySQL服务器重写器查询重写插件

MySQL服务器重写器查询重写插件MySQL支持查询重写插件,该插件可以在服务器执行SQL语句之前检查并可能修改服务器收到的SQL语句。请参阅查询重写插件。MySQL发行版包括一个名为的后解析查询重写插件,Rewriter以及用于安装该插件及其相关组件的脚本。这些组件协同工作以提供语句重写功能:一个服务器端插件Rewriter,根据其内存中的重写规则缓存,可以检查语句并可以对其进行重写。这些语句可...

weixin_33634121的博客 736

query_rewrite 插件的使用,临时处理线上问题

一 背景 线上出现慢查询sql,而此时你又不能发布新的版本,此时可用MySQL 5.7提供的query_rewrite 插件(可以把输入的一种语句改写成另外一种模式)来临时解决问题。 比如出现慢查询的sql如下(id为主键): select * from t where id + 1 = 10000; 我都知道在字段上做运算,会让MySQL不走索引。此时我们的目标是把这条sql改成:...

u010825931的博客 679

【新特性】MySQL5.7新特性query_rewrite 插件

一。使用场景 在业务繁忙并且紧急上线,对就是那种特别繁忙,又不能停的那种。在系统不忙的时候 明明跑的很好。**但是**一旦业务繁忙,造成业务阻塞。当查看MySQL的满查询日志中发现大量慢查询日志,(不是单单加索引就能搞定的哦)。这时候怎么办,难道怒对开发一顿,这时候你需要MySQL5.7新特性query_rewrite _Plugin插件了。 二。安装配...

weixin_33675507的博客 1020

DBA主宰一切请求,MySQL 查询重写

这个功能一年左右之前就以知晓,应该是5.7的高版本中。今天难得有兴致测试、随之也就总结一下。 前言: 一般来说,我们都会让开发自己去改sql。这样需要重启应用,单节点不可避免有或多或少的停服时间。同事主动权也就不在自己手里。 MySQL5.7某个版本开始有查询改写这个功能。所为查询改写,就是某种SQL写的非常不友好场景下,在MySQL服务端通过查询改写,将这SQL改写成相对友好的...

weixin_33915554的博客 161

mysql 查询重写_mysql-如何将数据库子查询重写为联接?

我正在尝试将此子查询重写为联接.我已经阅读了关于SO的其他问题,但是无法解决这个问题.create table job (emplid int,effdt date,title varchar(100),primary key (emplid, effdt));insert into job set emplid=1, effdt='2010-01-01', title='Programmer';...

weixin_42299310的博客 166

MySQL插件功能

今天需要备份数据,所以查了一下 mysqldump 的用法,就简单使用了一下,所以自己做个笔记,免得过几天又忘了 1、备份,进入到 bin 目录,执行以下命令 1.1.备份指定数据库 ./mysqldump -u root -p gaojie > /opt/gaojie06.sql 1.2.备份整个数据库 mysqldump -u root -p --all-datab...

gaojie_csdn的博客 3672

Datax mysql8插件开发

其实mysql8和mysql的区别几乎只是改了驱动而已, 过程一模一样的,那么开发步骤也是很简单, 几乎都是复制mysql的插件就可以了(如果业务不是像我一样又要mysql5.7又要mysql8的话直接改插件就可以了,不需要新建插件) 这篇文章只用mysql8reader举例, mysql8的writer大家可以自己写 1. 新建module ps: 我这里冒红只是因为我已经建立过了 2. mysql8配置文件处理 对于一个插件来说, 需要配置的文件有这么几个: mysql8reader/src/mai

钢琴线与小刀的博客 870

mysql query rewrite_MySQL 8.0 Query Rewrite支持DML

MySQL 8.0 Query Rewrite支持DML发布时间:2020-02-29 01:44:34来源:51CTO阅读:273作者:hcymysqlMySQL 8.0 Query Rewrite支持SELECT INSERT UPDETE DELETE REPLACE语句重写这个功能要点赞,比如开发上线时,有个SQL查询字段索引忘记加了,直接把线上CPU打满,此时,你可以将SQL重写,让业务...

weixin_30432831的博客 154

mysql 5.7 linux环境下安装部署

mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz 进入安装包所在目录,执行命令:tarmysql-5.6.17-linux-glibc2.5-i686.tar.gz 执行命令:cpmysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r 添加系统mysql组和my

u011380813的专栏 4800
上一篇: 故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题
下一篇: 第01期:一文了解 ClickHouse
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值