MySQL中sleep连接过多的问题解决
在MySQL中运行SHOW PROCESSLIST;,现数据库中有很多这样的进程: 上图可以看出,bim用户发起了274个连接,都是sleep状态。MySQL中Sleep连接过多,那么造成sleep的原因,有三个,下面是mysql手册给出的解释: 1)客户端程序在退出之前没有调用mysql_close()。[写程序的疏忽,或者数据库的db类库没有自动关闭每……
MySQL交换分区使用
MySQL 5.6开始支持ALTER TABLE … EXCHANGE PARTITION语句。该语句允许分区或子分区中的数据与另一个非分区的表中的数据进行交换。如果非分区表中的数据为空,那么相当于将分区中的数据移动到非分区表中。若分区表中的数据为空,则相当于将外部表中的数据导入到分区中。 要使用ALTER TABLE … EXCHA……
MySQL复制中从库延迟监控
在MySQL主备环境下,主备同步过程如下,主库更新产生binlog,备库io线程拉取主库binlog生成relay log。备库sql线程执行relay log从而保持和主库同步。 理论上主库有更新时,备库都存在延迟,且延迟时间为备库执行时间+网络传输时间,即t4-t2。但实际情况是,我们一般都是通过Slave上执行SHOW SLAVE STATUS命令得……
使用pt-online-schema-change在线修改MySQL表结构
一、背景 MySQL大字段的DDL操作:加减字段、索引、修改字段属性等,在MySQL 5.1之前都是非常耗时耗力的,特别是会对MySQL服务产生影响。在MySQL 5.1之后随着Plugin Innodb的出现在线加索引的提高了很多,但是还会影响(时间缩短了),主要是在更改期间,会生成一个互斥锁,阻塞对整个表的所有操作。不过MySQL 5.6版本开始已经支持……
在MySQL中查找表大小
在 MySQL 中可以通过在 information_schema 数据库中查询有关数据库的很多元数据信息,如果想知道 MySQL 数据库中每个库或每个表占用的空间、以及表索引占用的空间和表记录的行数的话,可以通过其中的一个 TABLES 表进行查看,TABLES 表中的数据来查看当前某个库的大小,某个表的大小,以及某个表的索引大小和行记录等等。 这个表主要……
使用pt-table-checksum&pt-table-sync检查和修复主从数据一致性
一、背景 公司数据中心从托管机房迁移到阿里云,需要对MySQL迁移(Replication)后的数据一致性进行校验,但又不能对生产环境使用造成影响,pt-table-checksum成为了绝佳也是唯一的检查工具。所以就利用pt-table-checksum工作来检查主从的一致性,以及通过pt-table-sync如何修复这些不一致的数据。 pt-table-……
MySQL 5.7:并行复制原理(MTS)
众所周知,MySQL 的复制延迟是一直被诟病的问题之一,在 MySQL 5.7 版本已经支持“真正”的并行复制功能,官方称为为 enhanced multi-threaded slave(简称 MTS),因此复制延迟问题已经得到了极大的改进。总之,MySQL 5.7 版本后,复制延迟问题“永不存在”,这里是引号哦。 一、MySQL 5.6 并行复制架构 从 ……
SQL中的where条件,在数据库中提取与应用浅析
一、问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍: 给定一条SQL,如……
MySQL InnoDB加锁处理分析(何登成)
一、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?……
MySQL备份恢复:Xtrabackup原理阐述
一、Xtrabackup介绍 Percona XtraBackup(简称 PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQL(Oracle)、Percona Server和 MariaDB,并且全部开源,真可谓是业界良心。据官方介绍,这也是世界上唯一一款开源的能够对Innodb和Xtradb存储引擎进行物理……
MySQL备份恢复:Xtrabackup使用实践
一、Xtrabackup安装 安装依赖包 $ yum install perl-Time-HiRes perl-DBI libev 1 $ yum install perl-Time-HiRes perl-DBI libev ……
MySQL触发器(trigger)
一、触发器介绍 MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序,触发器是个特殊的存储过程。它们不同的是执行存储过程要使用CALL语句来调用,而触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE和DELETE语句。如果定义了触发程序,当对表执行INSERT、DELETE或UPDATE语句时,将激活触发程序。可以将触发程序设计……