InnoDB Drop Table的机制及瓶颈
一、背景 在使用 MySQL 时,如果有大表的存储引擎是 InnoDB,并且系统参数 innodb_file_per_table 设置为 1,即每个文件对应一个独立的表空间,当对这些大表进行 DROP TABLE 时,有时会发现整个数据库系统的性能会有显著下降,包括一些只涉及几行数据的简单 SELECT 查询和 DML 语句,而且这些语句和正在删除的大表没有……
MySQL发展时间轴
毫无疑问,目前MySQL已经成为最为流行的开源关系数据库系统,并且一步步地占领了原有商业数据库市场。如今Google、Facebook、Yahoo、网易、九游、淘宝等大公司都在使用MySQL数据库。而MySQL的发展也从1.0到如今的8.0版本,其功能的完善和稳定性也得到了很好的保证。 简单来说,MySQL发展史可分为三个阶段,如下图: 第一阶段:MySQ……
PMM中的饱和度量值(Saturation Metrics)
PMM 1.2添加新图形之一是饱和度度量(Saturation Metrics)标准。这篇博文解释如何使用这些图表提供的信息。 您可能听说过Brendan Gregg的USE方法(利用率 – 饱和度 – 误差)作为分析任何系统性能的方法。我们在PMM中的目标是随着时间的推移完全支持这种方法,这些图表使我们向前迈进了一步。 在利用率方面……
磁盘利用率和饱和度理解
在这篇文章里,会介绍磁盘利用率(Utilization)和饱和度(Saturability)相关的知识。 在之前的博客里面,我写了一些关于CPU使用率和饱和度之间有什么实质性不同,以及CPU使用率、饱和度如何从不同维度影响响应时间(RT)的文章。现在我们来看另一个影响数据库性能重要因素:存储子系统。在下面文章里,我会用“磁盘”代替存储子系统。 监控IO性能最……
Django存储emoji到MySQL
一、问题描述 目前来说,多数 MySQL 都是以 utf8 存储,注意 MySQL 的 utf8 和我们所说的传统 utf8 有点区别。MySQL 的 utf8 实际上不是真正的 UTF-8,MySQL 的 utf8 编码规定了最多只能有 3 个字节,而真正的 UTF-8 是每个字符最多四个字节。 MySQL 一直没有修复这个 bug,他们在 2010 年发……
MySQL查询解析顺序
一、逻辑查询处理 SQL语言不同于其他编程语言,最明显的不同体现在处理代码的顺序上。在大多数编程语言中,代码按编码顺序被处理。但在SQL语言中,第一个被处理的子句总是FROM子句。下面显示了逻辑查询处理的顺序以及步骤的序号。 (8) SELECT (9) DISTINCT <select_list> (1) FRO……
MySQL运算符介绍
运算符是告诉MySQL执行特殊算术或逻辑操作的符号,主要用于在SQL语句的WHERE子句来执行,比较和算术运算等操作。运算符用于指定一个SQL语句中的条件,并作为连词多个条件在一份声明中。MySQL的内部运算符很丰富,主要有四大类:算术运算符、比较运算符、逻辑运算符、位操作运算符。 一、算术运算符 运算符 作用 + 加法运算 –……
Zabbix自动监控MySQL多实例配置
本人在工作中一般喜欢把MySQL、Redis、Memcached、MongoDB等数据库按照实例的方式对外提供服务。一般都是一台高配的服务器上开启多个实例给每个业务使用。而监控是重中之重,我自己也尝试了多种监控方式,但对我来说感觉最简单最快的就是使用zabbix了,灵活定义key。 由于我是多实例,所以就需要用到zabbix的自动发现功能(LLD)。基本处理……
MySQL ICP(Index Condition Pushdown)特性
一、SQL的where条件提取规则 在说 ICP(Index Condition Pushdown,索引条件下推) 特性之前,必须先搞明白根据何登成大神总结出一套放置于所有 SQL 语句而皆准的 where 查询条件的提取规则,为 ICP 提供理论支持。详情请看:SQL语句中where条件,在数据库中提取与应用浅析。 二、Index Condition Pu……
MySQL备份恢复:从Xtrabackup完整备份中恢复单个表
现在大多数同学在线上采取的备份策略都是xtrabackup全备+binlog备份,那么当某天某张表意外的删除,那么如何快速从xtrabackup全备中恢复呢?从MySQL 5.6版本开始,支持可传输表空间(Transportable Tablespace),那么利用这个功能就可以实现单表的恢复,同样利用这个功能还可以把innodb表移动到另外一台服务器上。可……
MySQL视图查询报错:Prepared statement needs to be re-prepared
今天公司的项目视图查询报错,报错如:ERROR 1615 (HY000): Prepared statement needs to be re-prepared 网上找了一圈,都说调整以下值就好了: mysql> set global table_open_cache=16384; mysql> set globa……
MySQL Shutdown异常处理和分析
先了解一下MySQL的shutdown流程 1、启动关机过程。 2、如有必要,服务器创建一个关闭线程。 3、服务器将停止接受新连接。 4、服务器终止当前的活动。 5、服务器关机或关闭存储引擎。 6、在服务器退出。 以上只是官方文档中介绍的一些基本的关机流程,正确的关机命令当然是mysqladmin -xx shutdown。接下来,我们来关注一下我们的问题。……