MySQL 5.7:多源复制实践
一、前言 MySQL 5.7的发布,在复制方面有了很大的改进,比如开始支持多源复制(multi-source)了。以及真正的支持多线程复制了。需要说明一点的是,多源复制可以使用基于二进制日志的复制或者基于事务的复制。下面开始配置基于二进制日志的多源复制。 什么是多源复制? 首先,我们需要清楚几种常见的复制模式: 1)一主一从 2)一主多从 3)级联复制 4)……
MySQL 5.7:在线开启和关闭基于GTID的复制
一、前言 MySQL在5.6版本之前复制一直是基于二进制日志的复制,到了MySQL5.6时开始支持基于事务(GTIDs)的复制,并且开始支持多线程复制;但MySQL5.6版本的多线程只能基于多库。这就牵扯到了一个应用场景,就是从基于日志的复制在线变更到基于事务的复制,在MySQL5.6版本时这一动作只能重启主服务器才可以做到。但是到了MySQL 5.7版本时……
MySQL 5.7:无损复制技术
一、复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史。 在2000年,MySQL 3.23.15版本引入了Replication。Replication作为一种准实时同步方式,得到广泛应用。这个时候的Replicaton的实现涉及到两个线程,一个在Master,一个在Slave。Slave的I/O和SQL功能是作为一个线程,从Mast……
MySQL 5.7多方式安装
一、MySQL RELEASE FORMAT MySQL官方发行版本一般就有以下几种(官方下载地址),其实大部分软件的发行版大多数情况下也是以下几种,所以只要明白一个软件的发行方式就OK。另外下载MySQL任何包都应该去官方网站下载,记住一定在官方下载且最好直接下载(不使用第三方工具),并且最好下载完成后经过MD5校验。因为MySQL是开源的,所以使用第三方……
MySQL 5.7:生成列(Generated Column)
生成列(Generated Column) 什么叫计算列呢,简单来说就是某一列的值是通过别的列计算得来,例如a列值为1,b列值为2,c列不需要操作手动插入,定义为a + b的结果为c的值,那么c就是计算列,是通过别的列计算得来,下面我们进行例子说明: 在MySQL 5.7之前的版本中,要实现这样的效果要利用触发器来完成,以下是以前的实现过程: ……
MySQL 5.7:JSON类型支持
在MySQL与PostgreSQL的对比中,PG的JSON格式支持优势总是不断被拿来比较。其实早先MariaDB也有对非结构化的数据进行存储的方案,称为dynamic column,但是方案是通过BLOB类型的方式来存储。这样导致的问题是查询性能不高,不能有效建立索引,与一些文档数据库对比,优势并不大,故在社区的反应证实比较一般。当然,MariaDB的dyn……
MySQL 5.7:SYS库详解
一、sys schema的演进 MySQL的数据字典经历了几个阶段的演进: MySQL 4.1 – 提供了information_schema数据字典,一些基础元数据可以通过SQL来查询得到。 MySQL 5.5 – 提供了performance_schema性能引擎,可以通过参数performance_schema来开启/关闭,说实……
MySQL 5.7:并行复制原理(MTS)
众所周知,MySQL 的复制延迟是一直被诟病的问题之一,在 MySQL 5.7 版本已经支持“真正”的并行复制功能,官方称为为 enhanced multi-threaded slave(简称 MTS),因此复制延迟问题已经得到了极大的改进。总之,MySQL 5.7 版本后,复制延迟问题“永不存在”,这里是引号哦。 一、MySQL 5.6 并行复制架构 从 ……
MySQL 5.7新特性概览-持续更新
MySQL 5.7 GA的发布,号称160万只读QPS,大有赶超NoSQL趋势。 上面这个图是Oracle在只读场景下官方测试的结果,看上去QPS确实提升很大。不过官方的硬件测试环境是很高的,所以这个160万QPS对于大家测试来说,可能还比较遥远,所以实际测试的结果可能会失望。但是,至少我们看到了基于同样测试环境,MySQL 5.7在性能上的改进,对于多核……