什么叫DDLOnline为何要OnlineDDLOnline的方式 官方网内置DDLOnlinept-online-schema-change专用工具gh-ost专用工具小结什么叫DDLOnlineDDLOnline:线上实行DDL句子,也就是线上改动表结构。说白了线上的含意便是确保在实行DDL句子的全过程中,表

DDL Online:线上实行DDL句子,也就是线上改动表结构。说白了线上的含意便是确保在实行DDL句子的全过程中,表依然能够 出示一切正常的读写能力服务项目,不容易终断。

这如同飞机场在没有着陆的状况下,半空中给飞机加油的实际操作。

你很有可能会想我实行一个DDL句子迅速的呀,不容易造成 表不可以一切正常读写能力吧?那是由于你实际操作的表是一个信息量较为小的表,或是并不是一个被经常浏览的业务流程表,针对这种表,实行DDL句子的确迅速,不容易对业务流程导致非常大的危害。可是,你假如对一个几百万、乃至上干万的大表开展DDL句子的改动,这一DDL句子实行的全过程,很有可能会不断几十秒、乃至数分钟,这时的这一全过程不容易像实际操作小表那麼快。

我们在工作环境中,免不了要碰到对表构造的改动。而这时网上的表已经为后端开发出示各种各样要求浏览的服务项目,假如这时大家立即开展对表构造的变更,很有可能造成 后端SQL要求被堵塞,不可以一切正常浏览,从而造成 服务项目出现异常或不能用。因此,在大家对线上的表开展DDL实际操作的情况下,要分外的留意。要挑选适合的方法、适合的時间开展,尽量减少这种难题的产生。

那麼为何提升给表提升一个字段名会造成 锁表呢?

在我们对表提升字段名的情况下,大家就需要获得这一表的MDL数据库锁(meta data lock)写锁(写锁又称之为X锁,读锁又称之为S锁),仅有获得的这一MDL的X锁以后,大家才能够 对这一表的构造开展改动,不然不可以改动会被堵塞。

迄今为止,MySQL的DDL Online的方法关键有下列几类。

下边大家各自对于在其中的几类方法来一一归纳总结一下。

MySQL从5.6以后的版本号早已适用了DDL的Online实际操作。在应用的情况下,便是在大家的DDL句子中,表明去特定关键词ALGORITHM和LOCK的变量值。实例以下:

alter table t add column col varchar(32), ALGORITHM=INPLACE, LOCK=NONE;alter table t add column col varchar(32), ALGORITHM=INPLACE, LOCK=SHARED;alter table t add column col varchar(32), ALGORITHM=INPLACE, LOCK=DEFAULT;alter table t add column col varchar(32), ALGORITHM=INPLACE, LOCK=EXCLUSIVE;

在其中的ALGORITHM=INPLACE, LOCK=NONE是重要的地区,这儿必须各自为ALGORITHM和LOCK这两个主要参数特定值。

MySQL内置的DDL Online的主要参数考试大纲以下:

图片出处参照:https://blog.csdn.net/finalkof1983/article/details/88355314

MySQL官方网尽管早已适用了DDL的Online实际操作,可是,这一实际操作较为有局限,并非是全部的DDL句子都能够真实的Online的去实行。有一些DDL句子,尽管大家表明的实行要让其应用online的方法去实行,可是当MySQL真实的去实行的情况下,假如它发觉不可以online的情况下,会得出报错,使我们改动相匹配的表明主要参数去改成offline的方法去实行。这儿不一样的DDL句子范畴很广,比如:改动字段名种类、提升主键、删掉主键、提升数据库索引、删除索引、变更数据库索引名字、提升字段名、删除字段、改动字段距离这些。依据不一样种类的DDL句子,主要参数ALGORITHM和LOCK的取值范围并并不是都能够随便组成应用的,这一要视状况而定,实际情景深入分析。实际参照以下照片:

图片出处参照:https://blog.csdn.net/finalkof1983/article/details/88355314

此外,在对于有主从关系构架的情景时,应用官方网内置的这类DDL Online句子,就算是在master主连接点能够 online的去实行,可是会在从库上面实行一样的DDL句子期内,从库中相匹配的这一实行DDL句子的表会发生DML句子被堵塞的状况,进而发生主从关系延迟时间的状况。大概全过程以下:

因此,官方网内置的这一线上的DDL方法较为有局限。大家大部分也不应用这类方法,只是选用第三方的专用工具来完成线上改动表结构的要求。

pt-online-schema-change是Percona企业出示的诸多专用工具集中化的一个,它是工具箱Percona Toolkit里边的在其中一个指令。而这一辅助工具的安裝也非常简单,有各种各样安裝方法。假如不愿编译程序安裝,能够 下载一个编译程序好的二进制压缩文件,拆箱即用,缓解压力后进到bin文件目录既能够 应用。下载链接为:https://www.percona.com/downloads/percona-toolkit/LATEST/

pt-online-schema-change能够 完成线上的DDL句子。它的基本原理是根据触发器原理来完成线上变更表结构。它的完成全过程大约以下:

在其中的第三步,在pt-osc专用工具中的完成方法是在原表上建立insert、update、delete触发器原理,根据这种触发器原理,把在导进数据信息到临时表的全过程中在对原表的DML实际操作同歩到临时表中去。这类作法较为大的难题便是提升了原表的工作压力,对原表的一些事情的实际操作会由于触发器原理实际操作临时表的添加而造成 事情拉长。

深圳seo/news/44936.html

本文由摸索网(http://www.lnmosuo.com)发布,不代表摸索网立场,转载联系作者并注明出处:http://www.lnmosuo.com/haowen/47516.html

ddl是什么意思mysql,ddl是什么意思(MySQL DDL Online)相关推荐

  1. MySQL 5.6中如何定位DDL被阻塞的问题

    在上一篇文章<MySQL 5.7中如何定位DDL被阻塞的问题>中,对于DDL被阻塞问题的定位,我们主要是基于MySQL 5.7新引入的performance_schema.metadata ...

  2. MySQL精选 | 枚举类型ENUM的DDL变更测试

    导读 本文深入介绍枚举类型EUNM和集合类型SET.测试基于InnoDB存储引擎上,对MySQL数据库枚举类型ENUM的字段进行DDL变更操作,是否需要重新创建表呢?对数据库的事务处理有何影响?对数据 ...

  3. 如何管理和使用哪些命令操作MySQL数据库?(基本操作,SQL语言,DDL,DML,DQL,DCL,Windows字符和图形界面MySQL安装)

    文章目录 前言 一:数据库基本操作命令 1.1:MySQL常用管理操作是哪些? 1.2:查看数据库列表信息的命令是? 1.3:查看数据库中的数据表信息命令是? 1.4:显示数据表的结构(字段)命令是? ...

  4. MySql基础篇---003 SQL之DDL、DML、DCL使用篇:创建和管理表 ,数据处理之增删改,MySQL数据类型精讲 ,约束:联合主键

    第10章_创建和管理表 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步.只有正确地 ...

  5. mySQL 教程 第16章 MySQL复制

    第16章 MySQL复制 复制解决的问题 概述:你的网站访问量非常大,对系统的稳定性非常高,那么可以使用mysql功能的复制功能,复制是指将主要的数据库的DDL和DML操作通过二进制日志传到复制服务器 ...

  6. mysql os.pid_离线安装Mysql

    Centos-离线安装MySql 卸载系统自带的Mariadb/MySql rpm -qa|grep mariadb 输出:mariadb-libs-5.5.44-2.el7.centos.x86_6 ...

  7. mysql 硬负载_为啥单机MySQL又遭遇瓶颈?MySQL主从复制替你解决单机问题

    成长是一棵树,总是在你不知不觉的情况下快乐长大:成长是一株草,总是在你不知不觉的情况下长满大地:成长是一朵花,总是在你不知不觉的情况下开满山头. 这不,随着时间的迁移.项目网站的用户量.数据量持续上升 ...

  8. Mysql数据库(二)——mysql数据库管理

    Mysql数据库(二)--mysql数据库管理 一.常用数据类型 二.查看数据库结构 1.进入数据库 2.查看数据库的信息 3.查看数据库中表的信息 4.显示数据表的结构(字段) 三.SQL语句概述 ...

  9. MySQL面试题1:MySQL架构体系相关

    问题一:介绍一下MySQL架构体系 MySQL Server架构自顶向下大致可以分网络连接层.服务层.存储引擎层和系统文件层. 一.网络连接层 客户端连接器(Client Connectors):提供 ...

  10. 数据传输服务 DTS > 数据迁移 > 从自建数据库迁移至阿里云 > 源库为MySQL > 从自建MySQL迁移至RDS MySQL

    从自建MySQL迁移至RDS MySQL 更新时间:2020-08-20 10:49:52 编辑我的收藏 本页目录 前提条件 注意事项 费用说明 迁移类型说明 增量数据迁移支持同步的SQL操作 数据库 ...

最新文章

  1. idea上传项目到码云_mall前端项目的安装与部署
  2. Python基础问题
  3. android 注册、登录实现程序
  4. 前端一HTML:二十CSS的三种存在方式
  5. springMVC源码分析
  6. palapa php,有什么办法可以在Android上运行PHP
  7. VS2008(SP1)资源编译错误:fatal error RC1015: cannot open include file 'afxres.h'.
  8. bilibili里的硬币有什么用 硬币的作用详细介绍
  9. 从零开始学Go之并发(四):互斥
  10. 北京允许无人车上路后,Pony.ai正式广州开跑
  11. C#进阶高级程序员开发必知必会:泛型的定义实操案例: 实现堆栈的后进先出功能
  12. luogu P4556 [Vani有约会]雨天的尾巴
  13. navicat12No All Pattern Found!File Already Patched。
  14. python柱形图绘制_Python绘图之柱形图绘制详解
  15. 电脑应用程序分身双开及多开(能记住账号和密码)
  16. 汇率查询接口,免费实时货币汇率查询换算
  17. 【ArcGIS错误集锦002-Server02】ArcGISserver发布站点报错Failed to create the site. Could not create directory path
  18. springboot驾校报名系统 微信小程序
  19. 中国枪械店软件市场趋势报告、技术动态创新及市场预测
  20. 个人项目总结---微信扫描二维码强制群发

热门文章

  1. PHP implode和explode用法
  2. docker网段冲突导致主机网络异常处理
  3. i3处理器_千元英特尔10代I3处理器套装跑分72万?微星差异化赢得市场
  4. Appium + IOS 自动化环境搭建教程(实践+总结+踩坑)
  5. BBR: Congestion-based congestion control
  6. leaflet所有示例下载
  7. 智能管家App kotlin版(1)——框架搭建
  8. Java判断闰年和平年
  9. win7 正式版安装成功,贴图得瑟一下
  10. eNews 第二十四期/2007.05