注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

MySQL二进制日志(binlog)详细解析

MySQL提供了4种不同的日志,分别是错误日志(error log)、普通日志(general log)、慢日志(slow log)以及二进制日志(binlog)。其中错误日志记录了系统启动、运行以及停止过程中遇到的一些问题;普通日志记录了MySQL执行的所有语句以及语句开始执行的时间等信息,用户可以选择性打开它;慢日志记录了MySQL所有慢查询的相关信息;……继续阅读 »

彭东稳 4周前 (01-24) 429浏览 0评论 0个赞

MySQL从库CrashSafe问题?

MySQL数据库的成功离不开其Replicaiton,相对于Oracle DG和Microsoft SQL Server Log Shipping来说,其简单易上手,基本上1,2分钟内根据手册就能完成环境的搭建。然而,随着使用的深入,Replication自身的问题会慢慢显露,其中非crash safe的特性使得许多DBA感到头疼,甚至不能理解其所发问题的原……继续阅读 »

彭东稳 1个月前 (01-19) 403浏览 0评论 0个赞

MySQL无主键延迟优化(slave_rows_search_algorithms)

我们知道,MySQL有一个老问题,当表上无主键或唯一键时,那么对于在该表上做的DML,如果是以ROW模式复制,则每一个行记录前镜像在备库都可能产生一次全表扫描(或者二级索引扫描),大多数情况下,这种开销都是非常不可接受的,并且产生大量的延迟。在无主键有二级索引的情况下会比无主键无索引情况要好一些,但同样可能会造成大延迟,下面有个案例。 在MySQL 5.6中……继续阅读 »

彭东稳 1个月前 (01-18) 379浏览 0评论 0个赞

MySQL多线程备份工具mydumper使用

一、mydumper&myloader介绍 mydumper&myloader是用于对MySQL数据库进行多线程备份和恢复的开源 (GNU GPLv3)工具。开发人员主要来自MySQL、Facebook和SkySQL公司,目前由Percona公司开发和维护,是Percona Remote DBA项目的重要组成部分,包含在Percona Xtr……继续阅读 »

彭东稳 2个月前 (12-21) 875浏览 1评论 1个赞

MySQL 5.7 GTID源码分析系列

从MySQL 5.6开始增加了强大的Gtid(Global Transaction ID,全局事务ID)这个特性,用来强化数据库的主备一致性,故障恢复,以及容错能力。用于取代过去通过binlog文件偏移量定位复制位置的传统方式。借助GTID,在发生主备切换的情况下,MySQL的其它Slave可以自动在新主上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的……继续阅读 »

彭东稳 2个月前 (12-19) 870浏览 0评论 2个赞

分布式数据库TiDB整体概述

一、分布式数据库诞生背景 随着互联网的飞速发展,业务量可能在短短的时间内爆发式地增长,对应的数据量可能快速地从几百 GB 涨到几百个 TB,传统的单机数据库提供的服务,在系统的可扩展性、性价比方面已经不再适用。比如MySQL数据库,可以说绝大部分公司核心的数据都存储在 MySQL中。MySQL的优点不用多说,缺点是没法做到水平扩展。MySQL 要想能做到水平……继续阅读 »

彭东稳 2个月前 (12-14) 1585浏览 0评论 3个赞

数据库水平切分架构实践

单Key业务,数据库水平切分架构实践 本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、用户中心 用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为: User(uid,……继续阅读 »

彭东稳 4个月前 (10-10) 1444浏览 0评论 1个赞

MySQL InnoDB索引选择性(优化器统计信息)

一、什么是索引选择性? 既然索引可以加快查询速度,那么是不是只要是查询语句需要,就建上索引?答案是否定的。因为索引虽然加快了查询速度,但索引也是有代价的:索引文件本身要消耗存储空间,同时索引会加重插入、删除和修改记录时的负担,另外,MySQL在运行时也要消耗资源维护索引,因此索引并不是越多越好。一般两种情况下不建议建索引。 第一种情况是表记录比较少,例如一两……继续阅读 »

彭东稳 5个月前 (09-21) 1926浏览 5评论 3个赞

针对SSD的MySQL IO优化

现在数据库标配基本都是SSD了,在使用SSD之前,对SSD进行了充分的测试,这其中当然包括最为关键的性能测试部分。下面就跟大家分享一下在SSD性能测试过程中遇到的一个问题和解决问题的思路。 我们的性能测试使用的测试工具是Sysbench,测试场景主要包括5类:全内存非事务更新(nontrx)、全内存事务更新(complex)、非全内存查询(select)、非……继续阅读 »

彭东稳 6个月前 (08-24) 1568浏览 0评论 1个赞

MySQL备份工具Xtrabackup锁问题(三)

从XtraBackup的备份过程可以看出,XtraBackup可以实现Innodb表的无锁备份,但是一个数据库中,即使所有的业务表都是innodb表,但是还存在一些MySQL系统库下的user表等,均是myisam表(MySQL 8.0均替换为InnoDB),同时备份过程需要获取Binlog文件名和位置,也要保证表定义文件的一致性,所以从整个实例的角度,即使……继续阅读 »

彭东稳 6个月前 (08-22) 1743浏览 0评论 3个赞

MySQL查询执行过程

我们总是希望MySQL能够获得更高的查询性能,最好的办法是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,就会发现:很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。 当向MySQL发送一个请求的时候,MySQL到底做了些什么呢?如下图: 1)客户端/服务端通信协议 MySQL客户端/服务端通信协议是“半……继续阅读 »

彭东稳 7个月前 (07-31) 2163浏览 0评论 5个赞