MySQL Online DDL 概述 编程技术

MySQL Online DDL 概述

一:最初alter的复杂过程。 MySQL 5.5之前除了MySQL 5.1的 innodb plugin之外,对于索引的添加或删除这类DDL操作,MySQL数据库的操作过程为如下: (1)首先创建新的临时表,表结构通过命令ALTAR TABLE新定义的结构 (2)然后把原表中数据导入到临时表(不能读和写) (3)删除原表 (4)最后把...
阅读全文
MYSQL中一个特殊的MDL LOCK死锁案列 编程技术

MYSQL中一个特殊的MDL LOCK死锁案列

水平有限 如有错误请指出共同探讨 版本:5.7.19 mysql+innodb 本文中所说的上文是如下文章,也是讨论MDL LOCK死锁的基础,包含了很多MDL LOCK的基础知识建议 好好阅读 http://blog.itpub.net/7728585/viewspace-2143093/ 一、问题由来 前段开发反馈时间线上数据库老是出现死锁情况,而我们设置了innodb...
阅读全文
MySQL中的online DDL(第一篇)(r11笔记第3天) 编程技术

MySQL中的online DDL(第一篇)(r11笔记第3天)

记得有一天快下班的时候,一位开发同事找到我说,需要对一个表做变更,数据量据说有上千万,而当时是使用的MySQL版本是5.5,这可如何是好,对于在线业务要求高的情况下,这种需求真是让人头疼。 而在早期的版本中,这种问题就更让人无语了。在Oracle中这个问题解决的较早,当然在很多技术实现细节上,Oracle和MySQL还是蛮大的差距。Oracle中有在线重定义的方案物化视图prebuil...
阅读全文
MySQL 锁问题最佳实践 编程技术

MySQL 锁问题最佳实践

前言 最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手。下面将从整个数据库设计,开发,运维阶段介绍如何避免锁问题的发生,提供一些最佳实践供RDS的用户参考。 设计阶段 在数据库设计阶段,引擎选择和索引设计不当可能导致后期业务上线后出现较为严重的锁或者死锁问题。 1....
阅读全文
mysqldump流程 编程技术

mysqldump流程

前几天看到群里在讨论mysqldump导致锁表的问题,为什么一个表已经dump完了还会被锁住?mysqldump里面到底是怎么处理的,为了解答这些问题,就来看看mysqldump.cc中的实现吧。 目录 (Contents) [隐藏 (Hide)] 1 重要参数 1.1 –single-transaction...
阅读全文
MySQL Performance-Schema(三) 实践篇 编程技术

MySQL Performance-Schema(三) 实践篇

前一篇文章我们分析了Performance-Schema中每个表的用途,以及主要字段的含义,比较侧重于理论的介绍。这篇文章我主要从DBA的角度出发,详细介绍如何通过Performance-Schema得到DBA关心的数据,比如哪个SQL执行次数最多,哪个表访问最频繁,哪个锁最热等信息。通过充分利用Performance-Schema表的数据,让DBA更了解DB的运行状态,也更有助于排查定位问题。本...
阅读全文
【MySQL】MetaData Lock 之一 编程技术

【MySQL】MetaData Lock 之一

一 简介 和MySQL打交道比较多的朋友,肯定遇到过 "Waiting for table metadata lock"或者由于MDL导致的故障,不过本文介绍MDL锁之前,我们先看一个著名的 bug#989 大致情况如下: session1: BEGIN; INSERT INTO t ... ; COMMIT; session2: ...
阅读全文
MySQL 复制夯住排查以及原理探讨 编程技术

MySQL 复制夯住排查以及原理探讨

目录 目录 一 引子 二 故障分析 三 故障解决 四 原理探讨 五 小结 文/温国兵 一 引子 研发反应,有台从库和主库不同步。由于业务读操作是针对从库的,数据不同步必定会带来数据的不一致,业务获取的结果会受影响,所以这个问题必须尽快解决。 登上服务器,查看 MySQL 的从库状态,并没有任何报错信息。刷新从...
阅读全文
Loading...