• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!
MySQL备份恢复:Xtrabackup锁问题分析

MySQL备份恢复:Xtrabackup锁问题分析

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

为什么I/O慢会导致Linux负载飙升?

为什么I/O慢会导致Linux负载飙升?

一、CPU利用率和负载率的区别 先来一张 top 命令图。 这里要区别 CPU 负载(Load)和 CPU 利用率,它们是不同的两个概念,但它们的信息可以在同一个 top 命令中进行显示。 什么是负载? 简单来说,负载(Load)指标表示一段时间内,系统有多少个运行的任务,也就是 CPU 使用队列的长度统计信息,这个数字越小越好。任务的统计包含: 正在 ……

MySQL一条SQL语句查询执行过程

MySQL一条SQL语句查询执行过程

我们总是希望 MySQL 能够获得更高的查询性能,最好的办法是弄清楚 MySQL 是如何优化和执行查询的。一旦理解了这一点,就会发现:很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器能够按照预想的合理方式运行而已。 同样,对于 MySQL 这个软件的整体架构我们也应该熟记于心,不能只会使用。比如,你有个最简单的表,表里只有一个 ID 字段,在……

MySQL支持的SQL模式介绍

MySQL支持的SQL模式介绍

一、SQL模式介绍 MySQL服务器可以在不同的SQL操作模式,并能应用这些模式不同的客户,根据不同的价值SQL模式系统 变量。数据库管理员可以设置全局SQL模式相匹配的网站服务器操作要求,每个应用程序可以设置会话 SQL模式自身的要求。 SQL模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查。这样可以更容易地在不同的环境中使用MySQL,……

Redis Cluster应用最佳实践

Redis Cluster应用最佳实践

1、稳定性 不扩容时集群非常稳定。 扩容resharding时候,早期版本的Jedis端有时会出现“max-redirect”异常。 分析Jedis源码,请求重试次数达到了上限,仍然没有请求成功。两方面分析:redis连接不上?还是集群节点信息不一致? 存活检测机制缺陷:Redis存活检测机制可能因为master节点上慢查询、阻塞式命令、或者其它的性能问题……

使用CacheCloud管理Redis实例

使用CacheCloud管理Redis实例

一、CacheCloud是什么? 最近在使用CacheCloud管理Redis,所以简单说一下,这里主要说一下我碰到的问题。CacheCloud官网从安装到使用文档非常详细了。 CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决Redis实……

MySQL CASE和IF语句使用

MySQL CASE和IF语句使用

SQL语句中的case语句与高级语言中的switch语句,是标准SQL的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作。 首先,让我们看一下CASE的语法。在一般的SELECT中,其语法格式如下: CASE <单值表达式> WHEN <表达式值> THEN <SQL语句或……

MariaDB YUM安装

MariaDB YUM安装

MySQL 5.6多方式安装 MySQL 5.7多方式安装 一、添加源 官方源 [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY……

Redis AOF刷新策略分析

Redis AOF刷新策略分析

Redis AOF刷新策略 Redis支持使用aof来进行持久化,防止数据丢失,aof的刷新策略通过参数appendfsync控制,有三个值:always、everysec、no,默认是everysec。 下面从源码的角度剖析一下aof的刷新策略。 每次redis进入event循环准备执行这个event时,会调用beforeSleep方法。 ……

Redis Key过期删除机制

Redis Key过期删除机制

Redis 是 k-v 数据库,我们可以设置 Redis 中缓存的 key 的过期时间。那么 Redis 缓存失效(key 过期)的故事要从 EXPIRE 这个命令说起,EXPIRE 命令允许用户为某个 key 指定其过期时间,当 key 超过这个时间后,我们应该就访问不到这个值了。接下来我们继续深入探究这个问题,Redis 缓存失效机制是如何实现的呢?也就……

Python操作Redis哨兵(三)

Python操作Redis哨兵(三)

Sentinel的客户端 如果要做到应用程序(客户端)对Redis的failover透明Transparent),客户端需要监控sentinel的频道信息,并自动连接新的主节点。官方提供了一个专门的topic来讲解这个问题:Guidelines for Redis clients with support for Redis Sentinel,而一些常用的开……

MySQL查询优化:GROUP BY

MySQL查询优化:GROUP BY

一、group by 当我们执行 group by 操作在没有合适的索引可用的时候,通常先扫描整个表提取数据并创建一个临时表,然后按照 group by 指定的列进行排序。在这个临时表里面,对于每一个 group 的数据行来说是连续在一起的。完成排序之后,就可以发现所有的 groups,并可以执行聚集函数(aggregate function)。可以看到,在……