SQL编程:有趣的SQL语句–持续更新
一、统计每个表自增值 根据统计信息用来统计每个表自增字段当前使用量及自增最大值。 SELECT table_schema, TABLE_NAME, COLUMN_NAME, AUTO_INCREMENT, pow(2, CASE data_type ……
SQL编程:联接查询
一、联接查询 联结查询是一种常见的数据库操作,即在两张表(或更多表)中进行行匹配的操作。一般称之为水平操作,这是因为对几张表进行联接操作所产生的结果集可以包含这几张表中所有的列。对应于联接的水平操作,一般将集合操作视为垂直操作。 MySQL数据库支持如下的联接查询: CROSS JOIN(交叉联接) INNER JOIN(内联接) OUTER JOIN(外……
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二进制日志(binlog)详细解析
MySQL 提供了 4 种不同的日志,分别是错误日志(error log)、普通日志(general log)、慢日志(slow log)以及二进制日志(binlog)。其中错误日志记录了系统启动、运行以及停止过程中遇到的一些问题;普通日志记录了MySQL执行的所有语句以及语句开始执行的时间等信息,用户可以选择性打开它;慢日志记录了 MySQL 所有慢查询的……
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。接下来,我们来关注一下我们的问题。……
SQL编程:REPLACE INTO
REPLACE INTO 语句是 SQL 标准的 MySQL 扩展,它的功能就是要么直接插入一条新记录,要么删除旧的记录后再插入一条新的记录。 如果归纳一下 REPLACE INTO 语句的执行规则,基本会有以下几种情况: 当表没有主键和唯一键时,REPLACE INTO 相当于普通的 INSERT 操作;binlog 记录事件为 INSERT;返回影响行……
SQL编程:INSERT … ON DUPLICATE KEY UPDATE
向数据库插入记录时,有时会有这种需求,当符合某种条件的数据存在时,去修改它,不存在时,则新增,也就是 insert Or Update 操作。这种控制可以放在业务层,也可以放在数据库层,大多数数据库都支持这种需求,如本文所讲的 MySQL 中的INSERT ... ON DUPLICATE KEY UPDATE语句。 该语句是基于唯一索引或主键使用,比如一个……
MySQL备份恢复:多线程mydumper工具
一、mydumper&myloader mydumper&myloader是用于对MySQL数据库进行多线程备份和恢复的开源 (GNU GPLv3)工具。开发人员主要来自MySQL、Facebook和SkySQL公司,目前由Percona公司开发和维护,是Percona Remote DBA项目的重要组成部分,包含在Percona XtraD……
MongoDB在线热备神器-createBackup
一、背景 作为NoSQL的优秀代表-mongodb数据库,在很多互联网公司得到广泛应用,不同的公司,mongodb数据量从几个GB到几个TB不等。无论数据量大小,都面临一个同样的问题:备份。 目前,常用的mongodb备份方案如下: 1)mongodump/mongoexport备份 这是mongodb官方提供的工具,属于逻辑备份,适合于数据量不大的情况(比……