iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql在线编辑器
  • 789
分享到

mysql在线编辑器

mysql数据库大数据javaphp 2023-09-03 11:09:44 789人浏览 泡泡鱼
摘要

Mysql 能否设置DDL语句 可以回滚? mysql8.0开始支持原⼦DDL(atomicDDL),数据字典的更新,存储引擎操作,写⼆进制日志结合成了一个事务。在没有原⼦DDL之前,DROPTABLEtest1,test2;

Mysql 能否设置DDL语句 可以回滚?

mysql8.0开始支持原⼦DDL(atomicDDL),数据字典的更新,存储引擎操作,写⼆进制日志结合成了一个事务。在没有原⼦DDL之前,DROPTABLEtest1,test2;如遇到servercrash,可能会有test1被drop了,test2没有被drop掉。下面来看下在Mysql8.0之前和MySQL8.0数据字典的区别

在MySQL8.0之前,DataDictionary除了存在与.FRM,.TRG,.OPT⽂件外,还存在于系统表中(MyISAM⾮事务引擎表中),在MySQL8.0,DataDictionary全部存在于DataDictionaryStorageEngine(即InnoDB表中),这使crashrecovery维持原⼦性成为了可能

存储引擎⽀持

目前,只有InnoDB存储引擎⽀持原子DDL,为了实现原子DDL,Innodb要写DDLlogs到mysql.innodb_ddl_log表,这是⼀个隐藏在mysql.ibd数据字典表空间⾥的数据字典表。要看mysql.innodb_ddl_log中的内容,需要

SETGLOBALLOG_ERROR_VERBOSITY=3;(MySQL8.0默认为2,errorlog记录Errorsand

warnings,不不记录notes)

SETGLOBALinnodb_print_ddl_logs=1;

CREATETABLEt1(c1INT)ENGINE=InnoDB;

查看errorlog

[Note][MY-011066]InnoDB:DDLloginsert:[DDLrecord:DELETESPACE,id=30,

thread_id=25,space_id=9,old_file_path=./test/t1.ibd]

[Note][MY-011066]InnoDB:DDLlogdelete:byid30

[Note][MY-011066]InnoDB:DDLloginsert:[DDLrecord:REMOVECACHE,id=31,

thread_id=25,table_id=1066,new_file_path=test/t1]

[Note][MY-011066]InnoDB:DDLlogdelete:byid31

[Note][MY-011066]InnoDB:DDLloginsert:[DDLrecord:FREE,id=32,thread_

id=25,space_id=9,index_id=143,page_no=4]

[Note][MY-011066]InnoDB:DDLlogdelete:byid32

[Note][MY-011066]InnoDB:DDLlogpostddl:beginforthreadid:25

[Note][MY-011066]InnoDB:DDLlogpostddl:endforthreadid:25

原子DDL操作步骤

准备:创建所需的对象并将DDL⽇志写入mysql.innodb_ddl_log表中。DDL日志定义了如何前滚和回滚DDL操作。

执行:执⾏DDL操作。例如,为CREATETABLE操作执⾏创建。

提交:更新数据字典并提交数据字典事务。

Post-DDL:重播并从mysql.innodb_ddl_log表格中删除DDL⽇志。为确保回滚可以安全执⾏⽽不引⼊不⼀致性,在此最后阶段执⾏⽂件操作(如重命名或删除数据文件)。这一阶段还从mysql.innodb_dynamic_metadata的数据字典表删除的动态元数据为了DROPTABLE,TRUNCATE和其它重建表的DDL操作。

⽆论事务是提交还是回滚,DDL日志都会mysql.innodb_ddl_log在Post-DDL阶段重播并从表中删除。mysql.innodb_ddl_log如果服务器在DDL操作期间暂停,DDL⽇志应该只保留在表中。在这种情况下,DDL⽇志会在恢复后重播并删除。

在恢复情况下,当服务器重新启动时,可能会提交或回退DDL事务。如果在重做⽇志和⼆进制日志中存在DDL操作的提交阶段期间执⾏的数据字典事务,则该操作被认为是成功的并且被前滚。否则,在InnoDB重放数据字典重做日志时回滚不完整的数据字典事务,并且回滚DDL事务。

原⼦DDL⽀持类型

•DROPTABLES,alltablesdroppedornone

•DROPSCHEMA,allentitiesintheschemaaredropped,ornone

•NotethatatomicDDLstatementswillberolledbackorcommittedevenincaseofcrash,e.g.RENAMETABLES

•CREATETABLEwouldbesuccessfullycommittedorrolledback(noorphanibdleft)

•TRUNCATETABLE(includingInnoDBtableswithFTSAUXtables)wouldbesuccessfullycommittedorrolledback

•RENAMETABLES,allornone

•ALTERTABLEsuccessfulornotdone

请点击输入图片描述

请点击输入图片描述

在MySQL8.0之前,altertable操作在servercrash的情况下,会遗留.frm,.ibd文件。MySQL8.0能实现原⼦DDL(包括DROPTABLE,DROPSCHEMA,CREATETABLE,TRUNCATETABLE,ALTERTABLE),altertable操作,在servercrash的情况下,不会遗留.frm,.ibd临时文件。让我们⼀起期待MySQL8.0GA的到来吧!

mysql在线编辑器_mysql在线ddl

让ddl sql到mysql数据库中执行很久时间,有没有这样的办法的

具体操作如下:

先看看看event事件是否开启

showvariableslike'%sche%';

如没开启,则开启。需要数据库超级权限

setglobalevent_scheduler=1;

创建存储过程update_a(注:就是你要执行的sql语句)

mysql>createprocedureupdate_a()updateaseta.y_avg=(selectavg(b.youhao)frombwherea.a_id=b.a_id);

创建一个定时任务:evente_updateA

mysql>createeventifnotexistse_updateA

->onscheduleevery60second---设置60秒执行一次

->onscheduleatdate_add(now(),interval1minute)---在一分钟后执行

->oncompletionpreserve

->docallupdate_a();---执行update_a()存储过程

创建Event之后,sql语句就定时执行一次。

关闭事件任务

mysql>alterevente_updateAON

->COMPLETIONPRESERVEDISABLE;

开启事件任务

mysql>alterevente_updateAON

->COMPLETIONPRESERVEENABLE;

mysqlbinlog语法错误

MySQL复制是异步的,也就是说是非同步的过程,它不会校验数据库中数据的一致性,只要SQL语法正确并且没有错误就能成功执行

[plain] view plain copy print?

MASTER@root@test 12:20:40>create table tab01

-> (id int(10) primary key ,

-> name varchar(20));

Query OK, 0 rows affected (0.03 sec)

MASTER@root@test 12:21:32>

MASTER@root@test 12:21:49>show master status;

+----------------------+----------+--------------+------------------+

| File| Position | Binlog_Do_DB | Binlog_Ignore_DB |

+----------------------+----------+--------------+------------------+

| binlog-master.000004 |338 |||

+----------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

MASTER@root@test 12:21:52>

[plain] view plain copy print?

[root@mynode1 mysql]# /service/mysql/bin/mysqlbinlog binlog-master.000004|tail -13

# at 213

#140130 12:21:32 server id 1 end_log_pos 338Querythread_id=3exec_time=0error_code=0

use `test`;

SET TIMESTAMP=1391055692;

create table tab01

(id int(10) primary key ,

name varchar(20))

;

DELIMITER ;

# End of log file

ROLLBACK ;

;

;

可以看到binlog里记录了这条语句,可以通过sql_log_bin参数来控制是否捕获binlog中的操作

[plain] view plain copy print?

MASTER@root@test 12:25:32>set sql_log_bin=0;

Query OK, 0 rows affected (0.00 sec)

MASTER@root@test 12:25:37>alter table tab01 add index(name);

Query OK, 0 rows affected (0.05 sec)

Records: 0 Duplicates: 0 Warnings: 0

MASTER@root@test 12:26:04>set sql_log_bin=1;

Query OK, 0 rows affected (0.00 sec)

MASTER@root@test 12:26:07>

MASTER@root@test 12:26:08>show create table tab01\G

*************************** 1. row ***************************

Table: tab01

Create Table: CREATE TABLE `tab01` (

`id` int(10) NOT NULL,

`name` varchar(20) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `name` (`name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

[plain] view plain copy print?

[root@mynode1 mysql]# /service/mysql/bin/mysqlbinlog binlog-master.000004

;

;

;

DELIMITER ;

# at 4

#140130 12:08:05 server id 1 end_log_pos 107Start: binlog v 4, server v 5.5.34-log created 140130 12:08:05 at startup

# Warning: this binlog is either in use or was not closed properly.

ROLLBACK;

BINLOG '

JdDpUg8BAAAAZwAAAGsAAAABAAQANS41LjM0LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAl0OlSEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAGCAA==

';

# at 107

#140130 12:13:45 server id 1 end_log_pos 213Querythread_id=3exec_time=0error_code=0

use `tmp`;

SET TIMESTAMP=1391055225;

SET @@session.pseudo_thread_id=3;

SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1;

SET @@session.sql_mode=0;

SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1;

;

SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33;

SET @@session.lc_time_names=0;

SET @@session.collation_database=DEFAULT;

create table tab_02 as select * from tab_tmp

;

# at 213

#140130 12:21:32 server id 1 end_log_pos 338Querythread_id=3exec_time=0error_code=0

use `test`;

SET TIMESTAMP=1391055692;

create table tab01

(id int(10) primary key ,

name varchar(20))

;

DELIMITER ;

# End of log file

ROLLBACK ;

;

;

[root@mynode1 mysql]#

可以将此DDL语句在slave库执行

[plain] view plain copy print?

SLAVE@root@test 12:26:39>alter table tab01 add index(name);

Query OK, 0 rows affected (0.04 sec)

Records: 0 Duplicates: 0 Warnings: 0

SLAVE@root@test 12:27:57>show create table tab01\G

*************************** 1. row ***************************

Table: tab01

Create Table: CREATE TABLE `tab01` (

`id` int(10) NOT NULL,

`name` varchar(20) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `name` (`name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

SLAVE@root@test 12:28:10>

在大型master-slave环境下执行DDL语句时,在每一台slave上手动去执行DDL命令能绕过MySQL数据复制单线程对某些命令的限制mysqlbinlog mysql-bin.00005 --startdatetime='时间' --stopdatetime='时间' --database=db_name | grep -i -a 6 'id=111' 用grep..

mysql在线编辑器_mysql在线ddl_02

mysql语句dml全称是什么意思

数据库操纵语言 DML;

数据库查询语言 DQL;

数据库模式定义语言 DDL;

数据库控制语言 DCL;没看懂什么意思?

来源地址:https://blog.csdn.net/yetaodiao/article/details/127370565

您可能感兴趣的文档:

--结束END--

本文标题: mysql在线编辑器

本文链接: https://www.lsjlt.com/news/392122.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql在线编辑器
    mysql 能否设置DDL语句 可以回滚? MySQL8.0开始支持原⼦DDL(atomicDDL),数据字典的更新,存储引擎操作,写⼆进制日志结合成了一个事务。在没有原⼦DDL之前,DROPTABLEtest1,test2;...
    99+
    2023-09-03
    mysql 数据库 大数据 java php
  • java fckeditor在线编辑器的使用
    FCKeditor(现在已经更名为CKEditor)是一个基于JavaScript的HTML文本编辑器,它可以嵌入到网站中,用于在网...
    99+
    2023-08-23
    Java
  • js制作xml在线编辑器实例
    目录前言在线XML编辑器的需求技术预研可视化编程VSCODE插件在线编辑器最初形态:简单的在线XML编辑器用CodeMirror做编辑器学习XML,并提取出tags规则进化形态:加载...
    99+
    2024-04-02
  • Python写一个简单的在线编辑器
    直接奔入主题看下面pywebio程序,实现了Python的简陋在线编辑器 from pywebio.input import * from pywebio.output import...
    99+
    2024-04-02
  • codemirror6在线代码编辑器如何使用
    本篇内容主要讲解“codemirror6在线代码编辑器如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“codemirror6在线代码编辑器如何使用”吧!介绍  &nbs...
    99+
    2023-07-04
  • excel怎么实现在线多人编辑
    要实现在线多人编辑Excel,可以使用以下方法:1. 使用Excel Online:Excel Online是Microsoft O...
    99+
    2023-09-11
    excel
  • codemirror6实现在线代码编辑器使用详解
    目录背景介绍codemirror5、codemirror6对比codemirror6 核心包vue3+codemirror6实现简易在线代码编辑器安装依赖创建编辑器效果截图主题获取、...
    99+
    2023-01-08
    codemirror 代码编辑器 codemirror 在线编辑器
  • 最佳在线PHP编辑器:快速创建文件
    最佳在线PHP编辑器:快速创建文件 在现代软件开发领域中,随着云计算和远程工作的兴起,越来越多的开发者转向使用在线代码编辑器进行编码工作。特别是对于PHP开发者来说,寻找一个功能强大且...
    99+
    2024-02-29
    php 在线编辑器 文件创建
  • 在线代码编辑器CodeMirror的定位是什么
    在线代码编辑器CodeMirror的定位是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一款“Online Source Editor”,基于Javascr...
    99+
    2023-06-17
  • 如何在文本编辑器中编辑HTML文件
    HTML是一种标记语言,用于创建网页和其他文档。如果你想学习HTML,在你的计算机上需要有一个文本编辑器,这篇文章将介绍如何在文本编辑器中编辑HTML文件,并提供一些提示和技巧。选择文本编辑器首先,你需要选择一个文本编辑器,它应该是可以在你...
    99+
    2023-05-14
  • 使用Springboot实现word在线编辑保存
    目录一、查看官网二、查看下载包1、springboot 引入 pageoffice5.2.0.12.jar2、springboot 引入thymleaf3、编写配置文件4、编写 in...
    99+
    2024-04-02
  • 如何使用MySQL和JavaScript实现一个简单的在线编辑器功能
    要实现一个简单的在线编辑器功能,可以通过以下步骤使用MySQL和JavaScript来实现:1. 创建一个包含两个字段的MySQL数...
    99+
    2023-10-20
    MySQL
  • 电脑excel如何弄成多人在线编辑
    要实现多人在线编辑Excel,可以使用以下几种方法:1. 使用共享文件夹或共享云存储:将Excel文件存储在一个共享文件夹或共享云存...
    99+
    2023-09-12
    电脑 excel
  • zoho writer在线文档编辑小技巧是什么
    zoho writer在线文档编辑小技巧是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 过去一年中,用户们在论坛里积极发言,推动了在线文档编辑工具Zoho Wr...
    99+
    2023-06-05
  • Centos7编辑安装mysql(mysql-5.7)
    数据库的必要性:使用数据库可以高效且条例分明的存储数据,使人们能够更加迅速、方便管理数据。 数据库的3个特点: 可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。 可以有效的保持数据信息的一致性...
    99+
    2024-04-02
  • Word2010中公式编辑器在哪
    在Word 2010中,可以通过以下步骤找到公式编辑器:1. 打开Word 2010文档。2. 点击"插入"选项卡。3. 在"文本"...
    99+
    2023-09-15
    Word
  • Springboot整合PageOffice 实现word在线编辑保存功能
    目录一、查看官网二、查看下载包三、测试 四、gitee地址一、查看官网 http://www.zhuozhengsoft.com/ 点击首页下载,进入页面: 最新得5.2...
    99+
    2024-04-02
  • 在UNIX下vi编辑器怎么用
    这篇文章主要为大家展示了“在UNIX下vi编辑器怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在UNIX下vi编辑器怎么用”这篇文章吧。在UNIX下,vi是标准的文本编辑器之一。几乎任何一...
    99+
    2023-06-13
  • 帝国cms编辑器目录在哪
    帝国cms编辑器目录位于CMS的安装目录下的某个子目录中,常见位置有:1、“ueditor目录”,可以通过访问“yourdomain.com/ueditor”来访问编辑器页面;2、“kindeditor目录”,可以通过访问“yourdoma...
    99+
    2023-08-02
  • golang Websocket开发指南:实现多人在线编辑功能
    Golang Websocket开发指南:实现多人在线编辑功能概述:随着互联网的迅速发展,Web应用程序的开发越来越受到关注。特别是有一些应用程序需要实现多人在线协同编辑的功能,这种实现方式的一个简单而有效的方法就是使用Websocket。...
    99+
    2023-12-09
    Golang websocket 多人在线编辑
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作