MySQL redo与undo日志解析
前言:前面文章讲述了MySQL系统中常见的几种日志,其实还有事务相关日志redolog和undolog没有介绍。相对于其他几种日志而言,redolog和undolog是更加神秘,难以观测的。本篇文章将主要介绍这两类事务日志的作用及运维方法。1.重做日志(redolog)我们都知道,事务的四大特性里面
从全备中恢复单库或单表,小心有坑!
前言:MySQL逻辑备份工具最常用的就是mysqldump了,一般我们都是备份整个实例或部分业务库。不清楚你有没有做过恢复,恢复场景可能就比较多了,比如我想恢复某个库或某个表等。那么如何从全备中恢复单库或单表,这其中又有哪些隐藏的坑呢?这篇文章我们一起来看下。1.如何恢复单库或单表前面文章有介绍过M
MySQL事务简介
前言:在学习MySQL的过程中,事务永远是一项绕不开的话题,日常程序开发也经常会用到事务。本篇文章将以MySQL8.0版本为基础,一起来深入了解下MySQL事务。一、事务的定义数据库事务(DatabaseTransaction),是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不
MySQL从库维护经验分享
前言:MySQL主从架构应该是最常用的一组架构了。从库会实时同步主库传输来的数据,一般从库可以作为备用节点或作查询使用。其实不只是主库需要多关注,从库有时候也要经常维护,本篇文章将会分享几点从库维护经验,一起来学习吧。1.主从复制建议采用GTID模式GTID即全局事务ID(GlobalTransac
安装MySQL后,需要调整的10个性能配置项
本文翻译自Percona官方博客,适用于MySQL5.6及5.7版本。作者:StephaneCombaudon原文:https://www.percona.com/blog/2014/01/28/10-mysql-performance-tuning-settings-after-installat
MySQL字段类型最全解析
前言:要了解一个数据库,我们必须了解其支持的数据类型。MySQL支持大量的字段类型,其中常用的也有很多。前面文章我们也讲过int及varchar类型的用法,但一直没有全面讲过字段类型,本篇文章我们将把字段类型一网打尽,讲一讲常用字段类型的用法。常用的字段类型大致可以分为数值类型、字符串类型、日期时间
MySQL查看及杀掉链接方法大全
前言:在数据库运维过程中,我们时常会关注数据库的链接情况,比如总共有多少链接、有多少活跃链接、有没有执行时间过长的链接等。数据库的各种异常也能通过链接情况间接反应出来,特别是数据库出现死锁或严重卡顿的时候,我们首先应该查看数据库是否有异常链接,并杀掉这些异常链接。本篇文章将主要介绍如何查看数据库链接
MySQL 线程池总结
线程池是MySQL5.6的一个核心功能,对于服务器应用而言,无论是web应用服务还是DB服务,高并发请求始终是一个绕不开的话题。当有大量请求并发访问时,一定伴随着资源的不断创建和释放,导致资源利用率低,降低了服务质量。线程池是一种通用的技术,通过预先创建一定数量的线程,当有请求达到时,线程池分配一个
不会吧?还在用 MHA 做 MySQL 高可用?
Orchestrator是一款成熟的MySQL高可用中间件。采用Go语言编写,支持拓扑发现、集群重塑、拓扑恢复等功能。主要功能拓扑发现:Orchestrator主动搜寻并记录MySQL节点的主从配置、复制状态等基础信息并进行拓扑映射。即使发生故障,它依然可以提供出色的可视化拓扑图。集群重塑:Orch
MySQL打印死锁日志
前言:在MySQL运维过程中,难免会遇到MySQL死锁的情况,一旦线上业务日渐复杂,各种业务操作之间往往会产生锁冲突,有些会导致死锁异常。这种死锁异常一般要在特定时间特定数据和特定业务操作才会复现,有时候处理起来毫无头绪,一般只能从死锁日志下手。本篇文章我们一起来看下MySQL的死锁日志。1.手动打
MySQL乱码问题如何排查
MySQL客户端和服务器是怎么通信的?1.首先请求会被MySQL客户端编码为字节序列之后通过网络传输到服务器。对于MySQL自带的客户端来说,这个编码过程使用的字符集和我们使用的操作系统的默认字符集是一样的,类Unix系统的默认字符集就是utf8,Windows系统的默认字符集就是g
MySQL中的执行计划EXPLAIN
什么是MySQL执行计划要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。MySQL本身的功能架构分为三个部分,分别是应用层、逻辑层、物理层,不只是MySQL,其他大多数数据库
MySQL 基础:如何启用 MySQL/MariaDB 查询日志
在这个简短易懂的指南中,我们介绍了如何启用MySQL/MariaDB查询日志并将查询保存到文件中。使用数据库时,开发人员经常想知道幕后发生的事情。无论是用于故障排除、性能调整还是纯粹出于好奇。通用查询日志仍然是MySQL/MariaDB数据库中最流行的审计和诊断信息来
那天删库跑路后,在牢里写的MySQL数据恢复大-法……
日常工作中,总会有因手抖、写错条件、写错表名、错连生产库造成的误删库表和数据的事情发生。那么,如果连数据都恢复不了,还要什么DBA。一、前言数据恢复的前提的做好备份,且开启binlog,格式为row。如果没有备份文件,那么删掉库表后就真的删掉了,lsof中还有记录的话,有可能恢复一部分文件。但若刚好
超级全面的MySQL优化指南
当MySQL单表记录数过大时,增删改查性能都会急剧下降,所以我们本文会提供一些优化参考,大家可以参考以下步骤来优化:一、单表优化除非
什么是 MySQL 的“回表”?
小伙伴们在面试的时候,有一个特别常见的问题,那就是数据库的回表。什么是回表?为什么需要回表?今天松哥就来和大家聊一聊这个话题。1.索引结构要搞明白这个问题,需要大家首先明白MySQL中索引存储的
看完这篇还不懂 MySQL 主从复制,可以回家躺平了~
我们在平时工作中,使用最多的数据库就是MySQL了,随着业务的增加,如果单单靠一台服务器的话,负载过重,就容易造成宕机。这样我们保存在MySQL数据库的数据就会丢失,那么该怎么解决呢?其实在MySQL本身就自带有一个主从复制的功能,可以帮助我们实现负载均衡和读写分离。对于主服务器(
关于主从延迟,一篇文章给你讲明白了!
生活中所受的苦,终会以一种形式回归!前言在实际的生产环境中,由单台MySQL作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面因此,一般来说都是通过集群主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发
MySQL连接数管理
前言:MySQL连接状态是数据库中比较重要的一个指标,比如说目前总共有多少个连接、各连接处于什么状态等等,这些连接状态也能从侧面反映出数据库当前运行状况。本篇文章我们一起来学习下MySQL连接相关内容。1.connection相关参数先来看下connection相关参数,只有参数设置合理了,数据库才
给新手学习MySQL的建议
前言:经常有小伙伴问我:MySQL应该怎么学?小白如何入门?我在想,我当时是如何学习MySQL的,是否可以给到初学者几点建议,本篇文章,笔者将以自己的经验及认知,谈谈我对新手学习MySQL的建议。搭建好环境,弄清基础概念。学习MySQL,首先要有个自己的环境,可以在自己本机或某台虚拟机上安装下MyS