磁盘利用率和饱和度理解
在这篇文章里,会介绍磁盘利用率(Utilization)和饱和度(Saturability)相关的知识。 在之前的博客里面,我写了一些关于CPU使用率和饱和度之间有什么实质性不同,以及CPU使用率、饱和度如何从不同维度影响响应时间(RT)的文章。现在我们来看另一个影响数据库性能重要因素:存储子系统。在下面文章里,我会用“磁盘”代替存储子系统。 监控IO性能最……
关于MySQL复制中server_id的研究
做过 MySQL 主从复制的同学都知道,主从复制能够有效工作的一些基本原则,如下: master 必须开启 binlog,这是主从复制能够工作的基本要求,slave 需要同步 master 的 binlog 进行回放来同步数据。 master 和 slave 实例都需要设置 server_id,且不能相同,否则复制会报错;同一个复制集群中必须保证 serv……
Django存储emoji到MySQL
一、问题描述 目前来说,多数 MySQL 都是以 utf8 存储,注意 MySQL 的 utf8 和我们所说的传统 utf8 有点区别。MySQL 的 utf8 实际上不是真正的 UTF-8,MySQL 的 utf8 编码规定了最多只能有 3 个字节,而真正的 UTF-8 是每个字符最多四个字节。 MySQL 一直没有修复这个 bug,他们在 2010 年发……
MySQL运算符介绍
运算符是告诉MySQL执行特殊算术或逻辑操作的符号,主要用于在SQL语句的WHERE子句来执行,比较和算术运算等操作。运算符用于指定一个SQL语句中的条件,并作为连词多个条件在一份声明中。MySQL的内部运算符很丰富,主要有四大类:算术运算符、比较运算符、逻辑运算符、位操作运算符。 一、算术运算符 运算符 作用 + 加法运算 –……
Zabbix自动监控MySQL多实例配置
本人在工作中一般喜欢把MySQL、Redis、Memcached、MongoDB等数据库按照实例的方式对外提供服务。一般都是一台高配的服务器上开启多个实例给每个业务使用。而监控是重中之重,我自己也尝试了多种监控方式,但对我来说感觉最简单最快的就是使用zabbix了,灵活定义key。 由于我是多实例,所以就需要用到zabbix的自动发现功能(LLD)。基本处理……
MySQL备份恢复:从Xtrabackup完整备份中恢复单个表
现在大多数同学在线上采取的备份策略都是xtrabackup全备+binlog备份,那么当某天某张表意外的删除,那么如何快速从xtrabackup全备中恢复呢?从MySQL 5.6版本开始,支持可传输表空间(Transportable Tablespace),那么利用这个功能就可以实现单表的恢复,同样利用这个功能还可以把innodb表移动到另外一台服务器上。可……
MySQL二进制日志(binlog)详细解析
MySQL 提供了 4 种不同的日志,分别是错误日志(error log)、普通日志(general log)、慢日志(slow log)以及二进制日志(binlog)。其中错误日志记录了系统启动、运行以及停止过程中遇到的一些问题;普通日志记录了MySQL执行的所有语句以及语句开始执行的时间等信息,用户可以选择性打开它;慢日志记录了 MySQL 所有慢查询的……
MySQL从库 crash-safe 问题(单线程回放)
一、从库 crash safe 解决历程 MySQL 数据库的成功离不开其复制功能,相对于 Oracle DG 和 Microsoft SQL Server Log Shipping 来说,其简单易上手,基本上 1,2 分钟内根据手册就能完成环境的搭建。然而,随着使用的深入,复制功能自身的问题会慢慢显露,其中非 crash safe 的特性使得许多 DBA ……
MySQL备份恢复:多线程mydumper工具
一、mydumper&myloader mydumper&myloader是用于对MySQL数据库进行多线程备份和恢复的开源 (GNU GPLv3)工具。开发人员主要来自MySQL、Facebook和SkySQL公司,目前由Percona公司开发和维护,是Percona Remote DBA项目的重要组成部分,包含在Percona XtraD……
MySQL 5.7 GTID源码分析系列
从MySQL 5.6开始增加了强大的Gtid(Global Transaction ID,全局事务ID)这个特性,用来强化数据库的主备一致性,故障恢复,以及容错能力。用于取代过去通过binlog文件偏移量定位复制位置的传统方式。借助GTID,在发生主备切换的情况下,MySQL的其它Slave可以自动在新主上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的……
数据库水平切分架构实践
单Key业务,数据库水平切分架构实践 本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、用户中心 用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为: User(uid,……
针对SSD的MySQL IO优化
现在数据库标配基本都是SSD了,在使用SSD之前,对SSD进行了充分的测试,这其中当然包括最为关键的性能测试部分。下面就跟大家分享一下在SSD性能测试过程中遇到的一个问题和解决问题的思路。 我们的性能测试使用的测试工具是Sysbench,测试场景主要包括5类:全内存非事务更新(nontrx)、全内存事务更新(complex)、非全内存查询(select)、非……