Linux 操作系统有诸多自带和第三方的监控工具,以下从不同维度来整理常用的一些监控工具。CPUtop(经典的Linux任务管理工具)示例:top -n 1 -bvmstat(展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用)示例:vmstat 1 10 #每1秒采集一次共
GTID概述MySQL5.6 在原有主从复制的基础上增加了一个新的复制方式,即基于GTID的复制方式,它由UUID和事务ID两个部分组成,具有如下特点。GTID事务是全局唯一性的,并且一个事务对应一个GTID值。一个GTID值在同一个MySQL实例上只会执行一次。GTID相较与传统复制的优势主从搭建
介绍MySQL Test Run 简称MTR,是MySQL官方提供的自动化测试框架,执行脚本在发布路径的mysql-test目录下。主要测试步骤,是通过执行一个case(*.test)中的语句(包括sql语句和其他管理语句),将case的输出记录保存在结果文件(*.result)中,或者是将语句执行
半同步简介MASTER节点在执行完客户端提交的事务后不是立刻返回结果给客户端,而是等待至少一个SLAVE节点接收并写到relay log中才返回给客户端。半同步相对于异步复制而言,提高了数据的安全性,同时也造成了一定程度的延迟,这个延迟最少是一个TCP往返的时间。所以,半同步复制最好在低延时的网络中
MySQL 的function创建会有各种限制,经常使用的语句的限制如下:1.CONTAINS_DYNAMIC_SQLCREATE function f1() returns int BEGIN set @cmd = 'select * from t1'; PREPARE stmt1 FROM
背景说明:在一次断网测试过程中,在主库发起了DDL操作,备库丢失该DDL,导致主从表结构不一致,接下来的测试竟然都正常,表结构不一致,不影响复制进程,感觉比较奇怪,在这之前都是认为主从表结构不一致会导致复制异常,为了弄明白这个问题,进行了问题复现验证。测试环境MySQL社区版 8.0.25binlo
简单学习一下数据文件解析这是尝试使用Golang语言简单解析MySQL 8.0的数据文件(*.ibd)过程的一个简单介绍,解析是反序列化的一个过程,或者叫解码的过程。1 为什么要解析虽然有很多开源的代码已经实现了这个解码过程,例如使用C实现的undrop-for-innodb[1],支持到MySQL
传统单线程复制说明众所周知,MySQL在5.6版本之前,主从复制的从节点上有两个线程,分别是I/O线程和SQL线程。I/O线程负责接收二进制日志的Event写入Relay Log。SQL线程读取Relay Log并在数据库中进行回放。以上方式偶尔会造成延迟,那么可能造成主从节点延迟的情况有哪些?1.
视图定义视图是一种有结构的虚拟表,本身不存放数据,视图中数据来源于真实的表,真实的表也被称之为基表。视图作用简化SQL语句: 比如将一条多表联合查询做成视图,后续直接SELECT * 视图进行查询即可。相对安全的权限控制: 针对不同应用只需要建立对应视图表,提供所需要的字段信息,应用无法感知到其他字
理论知识错误日志内容错误日志包含 mysqld 启动和关闭的时间信息,还包含诊断消息,如服务器启动和关闭期间以及服务器运行时出现的错误、警告和其他需要注意的信息。例如:如果 mysqld 检测到某个表需要检查或修复,会写入错误日志。根据错误日志配置,错误消息还可能填充 performance_sch
MySQL 主要索引类型有如下几种:1.主键索引2.唯一索引3.普通索引4.空间索引5.全文索引假设有如下一张表CREATE TABLE `t1` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `u1` int unsigned NOT NULL
MySQL 的表有很多种,对表的操作主要是增删改查,今天来浅谈一下这些操作的底层代码和流程,以下以 tmp table为例子,为了更好的说明操作流程,该表没有建立 primary key。1.首先创建一张 tmp table,第三个参数 is_virtual=false 代表这不是虚拟表,如果这个值
导语在日常工作中可能会存在误删数据的情况,今天就简单介绍下如何利用延迟库进行数据库的快速恢复。步骤1.环境准备建立一个测试的主从库,写入一些测试数据,非本文要点,过程略。2.设置延迟同步在原有同步信息的基础上进行如下操作,设置延迟同步1小时# 设置延迟1小时mysql> stop slave;
导语在日常开发过程中难免会使用到第三方库或者需要将部分库分离另外存储,如果将库与代码放在一起难免会造成工程庞大,此时就可以采用将库与源码分离的方式,在编译时根据情况来判断是否需要下载。步骤下面来解析下具体操作步骤,以下以 oracle oci 库下载为例。UNSET命令初始化本次编译用到的参数变量
导语在数据检索的过程中,经常会有多个列的匹配需求,今天介绍下联合索引的使用以及最左匹配原则的案例。最左匹配原则作用在联合索引中,假如表中有一个联合索引(tcol01,tcol02,tcol03),只有当SQL使用到tcol01、tcol02索引的前提下,tcol03的索引才会被使用;同理只有tcol
前情介绍:我们都知道登录MySQL数据库时,连接层接入数据库需要经过mysql.user表中,用户名密码的验证才能登录数据库。如果mysql.user中不存在此用户或者密码不正确,则会返回错误提示。假如mysql.user数据库表中没有对应的账号,我们能不能登录数据库呢?今天我们来介绍一下如何来使用
导语SHOW CREATE TABLE语句用于为指定表/视图显示创建的语句,本文将简要描述如何在MySQL源码里跟踪和学习此类语句的执行流程。(注:使用版本为Percona-Server-8.0.25-15)步骤准备工作编译调试版本的 mysql server 程序,创建数据库实例后建立一张示例表:
一、导读MySQL 8.0.19 开始支持对InnoDB引擎表数据进行采样以生成直方图统计信息。直方图(Histogram)是关系型数据库中提供的一种基础的统计信息,最典型的用途是估计查询谓词的选择率,以便选择优化的查询执行计划。常见的直方图种类有:等宽直方图、等高直方图。二、步骤2.1 SQL语句
一、问题发现在一次开发中使用 MySQL PREPARE 以后,从 prepare 直接取 name 赋值给 lex->prepared_stmt_name 然后给 EXECUTE 用,发现有一定概率找不到 prepare stmt 的 name,于是开始动手调查问题发生的原因。SQL语句示例
1. 导入2.工具介绍3.通过Vagrant为VirtualBox安装CentOS 74.总结1. 导入本文介绍如何使用 Vagrant 在 VirtualBox 中快速安装 Linux 虚拟机。本文演示系统未 Windows 系统,需要准备好 Vagrant 和 VirtualBox2.工具介绍V