tpcc-mysql 是 Percona 开源的一个对 MySQL 进行 tpc-c 基准测试的工具,本文主要介绍 tpcc-mysql 的安装、使用和结果解读。 一、安装 tpcc-mysql tpcc-mysql 是一个开源的工具,代码托管在 github 上,下载源码,编译安装。本文测试使
MySQL有很多状态变量,每个状态变量都有其背后所代表的意义,本文介绍状态变量Handler_read_next及在哪些场景中,这个状态变量的值会显著增长。 一、Handler_read_next官方文档描述: Handler_read_next The number of request
MySQL状态变量Com_delete和Com_delete_multi用于记录delete语句执行的次数,在统计delete的QPS时,通常要将这两个值进行叠加,但是它们之间有什么区别呢? Com_delete 记录单表delete语句执行的次数,比如: delete from tb1 l
MySQL状态变量 Com_update 和 Com_update_multi 用于记录update语句执行的次数,其中Com_update用于记录单表更新的语句,Com_update_multi用于记录多表更新的语句,下面分别看一下这两个变量对应的SQL示例。 Com_update 单表更新:
一直以来,MySQL版本升级依赖额外的工具 mysql_upgrade ,但是从 MySQL 8.0.16 开始,mysql_upgrade 工具将被废弃,取而代之的是MySQL 8.0 新的版本升级方式,升级功能集成到MySQL Server的进程mysqld中,不再依赖额外的外部工具。 这
一直以来,我们使用MySQL,进行版本升级,比如从5.7.11升级到5.7.12,这种小版本升级是一个很小的事情,即使升级过程中或在升级之后,想要回滚,也很方便,直接将mysql server的二进制文件替换回来即可。但是从MySQL 8.0开始,小版本升级将变得不再可逆,没有办法轻松做到从 8.0
mysql主从复制通过binlog来同步数据,在从库上执行start slave,会开启两个线程,分别是io线程和sql线程。io线程负责从主库拉取binlog并存储到本地的relay log,sql线程负责把relay log中的事务在从库应用。本文将结合源码分析io线程的具体实现。 MyS
在之前的文章《mysql主从复制io线程源码分析》,我们分析了MySQL从库的io线程工作的主要过程,大致回顾一下,如下: 连接主库 发送COM_REGISTER_SLAVE命令注册从库 发送COM_BINLOG_DUMP_GTID命令请求拉取binlog 下面将结合源码,分析一下主
MySQL主从复制通过Binlog进行数据传输,主库写入数据,生成Binlog,通过dump线程将Binlog发送给从库,从库IO线程接收Binlog并写入自己的relay log,SQL线程应用relay log里的事务。本文结合MySQL源码,分析SQL线程的主要处理过程。 MySQL源码
Copyright © 2020-2023 www.mytecdb.com All Rights Reserved.
MySQL自带了很多插件,比如半同步插件、审计插件、密码验证插件等等,甚至MySQL存储引擎也是以插件方式实现的。MySQL开放的插件接口,为开发者开发自定义插件提供了便利。本文将介绍如何快速开发一个自定义的MySQL插件。 一、开发环境准备 下载MySQL源码,本文使用的源码是 Per
MySQL死锁的原因有很多,总的来说,还是因为加锁的顺序不一致,下面来看一个index_merge导致的死锁。 死锁案例: MySQL版本:5.7.19 隔离级别:提交读(RC) 先看表结构,如下: CREATE TABLE `t` ( `id` bigint(20) N
Copyright © 2020-2023 www.mytecdb.com All Rights Reserved.
MySQL修改数据库名称比较麻烦,不支持直接修改,需要通过其他方式间接达到修改数据库名称的目的,整理了一下,大致有如下几种方式。 方法一:通过修改表名称,间接实现修改数据库名称(推荐) 比如数据库名称db_old 想改名为 db_new。 (1)先创建新库: create databas
MySQL提供修改表名称语法如下: rename table tb to tb1; alter table tb rename to tb1; alter table tb rename as tb1; 以上三种语法都可以实现修改MySQL表名称。 注意: 修改表名称有风险,如果
触发器(trigger)是数据库的一类对象,与表关联,当表中指定的事件发生时,比如插入数据,更新数据,删除数据,触发器就会被激活,来执行一些SQL语句。 触发器不能建立在临时表或者视图上。 触发器的名称在schema的命名空间里,也就是说一个数据库里面的触发器名称必须唯一。 创建触发器
MySQL支持视图功能,包括可更新的视图。视图可理解为一个虚拟表,作用与真实表一样,在逻辑上可以把视图当作一个真实表使用,视图内部包含了真正的查询语句,这个查询语句可以非常复杂,但是用户并不关心这个查询语句,用户只需要查询视图,就能返回想要的数据。 1. 视图优缺点 1.1. 优点 简
JOIN查询是关系型数据库的基本功能,MySQL提供多种JOIN关联查询方式,包括内连接,左连接,右连接等等,本文将简单介绍MySQL JOIN查询的分类,基本语法和使用案例。 在MySQL中,JOIN可以分为内连接和外连接,外连接又可以分为左连接和右连接。 join内连接 join外连接
MySQL支持外键(foreign key),外键允许跨表交叉引用相关数据,另外外键约束能够保证相关数据的一致性。一个外键关系通常包括一个父表和一个子表。父表包含原始的字段数据,子表引用父表中该字段的数据,外键约束定义在子表上。 1. 外键定义的语法 通常在create table和alte