MySQL InnoDB表压缩
一、InnoDB表压缩概述 InnoDB表压缩可以在创建表时开启,也可以使用ALTER关键字更改。压缩表能够使表中的数据以压缩格式存储,压缩能够显著提高原生性能和可伸缩性。压缩意味着在硬盘和内存之间传输的数据更小且占用相对少的内存及硬盘,对于辅助索引,这种压缩带来更加明显的好处,因为索引数据也被压缩了。这主要得益于InnoDB表压缩是针对页面压缩(不是行压缩……
SQL优化之INSERT、UPDATE、DELETE
一、优化INSERT语句 为了优化插入速度,将许多小型操作组合成一个大的操作。理想情况下,您进行单个连接,一次发送许多新行的数据,并延迟所有索引更新和一致性检查,直到最后。 插入行所需的时间由以下因素确定,其中数字表示大致比例: 连接:(3) 向服务器发送查询:(2) 解析查询:(2) 插入行:(1×行大小) 插入索引:(1×索引数) 结束:(1) 假设……
MySQL从库延迟计算方式分析(Seconds_Behind_Master)
一、背景 在 MySQL 主备环境下,主备同步过程简单描述就是主库 sql 语句操作产生 binlog 发送给备库,备库 io 线程读取主库 binlog 生成 relay log;然后备库 sql 线程执行 relay log 从而保持和主库同步。 理论上主库有更新时,备库都存在延迟,且延迟时间为备库执行时间+网络传输时间,即 t4-t2。但实际情况是,……
MySQL timeout相关变量解释
首先看一下MySQL timeout相关的变量 mysql> show global variables like '%timeout%'; +-----------------------------+----------+ | Variable_name | Value | +-……
MySQL数据库innodb_rollback_on_timeout默认值的危害?
一、innodb_rollback_on_timeout变量 有时侯会发生事务超时的情况,MySQL会返回类似这样的错误: ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction. ……
MySQL使用HeidiSQL工具改库名
HeidiSQL是一款数据库管理工具,它是德国程序员Ansgar Becker和几个Delphi程序员开发的一个开源工具。支持通过多种方式连接管理 MySQL(MariaDB)、MSSQL Server、PostgreSQL数据库,功能强大,完全免费,推荐大家使用。HeidiSQL比起其他客户端工具而言,支持显示库表的索引大小和数据大小,并且支持改库名(是通……
HugePage是否是拯救性能的万能良药?
一、准备知识 在阅读本文之前,需要读者至少了解以下基础知识 CPU Cache的基本概念,具体可参见 关于CPU Cache – 程序猿需要知道的那些事。 NUMA的基本概念,具体可参见 NUMA架构的CPU — 你真的用好了么?。 目前Linux基于多核CPU繁忙程度的线程调度机制,参看Chip Multi Processing aware ……
MySQL多表更新或删除案例
我们用到最多的update更新数据都是单表更新了,但有的时候我们不得不使用关联多表进行数据更新了,下面我给各位介绍利用upate实现多表关联更新。另外需要注意的是MySQL从4.0.4版本开始才支持执行一个包含多个表的UPDATE的语句。 下面给出我的实验环境 环境不涉及什么业务场景,纯粹为了达到测试语句的效果,所以不要问这么更新有什么意义之类的?在生产环境……
SQL中的in、not in、exists及not exists的区别
一、in和exists select * from A where cc in(select cc from B) 1 select * from A where cc in(select cc from B) ……
MySQL SQL报错解决:You can’t specify target table ‘work’ for update in FROM clause
下面来对GROUP BY后面有多个字段进行测试。 一、环境搭建 CREATE TABLE `work` ( `id` int DEFAULT 0, `name` varchar(20) DEFAULT NULL, `address` varchar(20) DEFAULT NULL, `work` var……
MySQL审核工具Inception推荐
一、Inception简介【已闭源】 Inception是集审核、执行、回滚于一体的一个自动化运维系统,它是根据MySQL代码修改过来的,用它可以很明确的,详细的,准确的审核MySQL的SQL语句,它的工作模式和MySQL完全相同,可以直接使用MySQL客户端来连接,但不需要验证权限,它相对应用程序(上层审核流程系统等)而言,是一个服务器,在连接时需要指定服……