随笔分类 - MySQL Server
摘要:故障1 [ERROR] Plugin group_replication reported: 'This member has more executed transactions than those present in the group. Local transactions: bb8740
阅读全文
摘要:# 在/usr/lib/systemd/system/路径下创建mysql.service ]#vim /usr/lib/systemd/system/mysql.service [Unit] Description=MySQL server After=syslog.target network.
阅读全文
摘要:Adaptive Hash Index(以下简称 AHI)估计是 MySQL 的各大特性中,大家都知道名字但最说不清原理的一个特性。本期图解我们为大家解析一下 AHI 是如何构建的。 首先我们思考一下 AHI 是为了解决什么问题: 随着 MySQL 单表数据量增大,(尽管 B+ 树算法极好地控制了树
阅读全文
摘要:一、本文想解决什么问题 二、如何识别需要排序 三、如何利用索引优化排序 四、排序的几种模式 4.1、实际trace结果 4.2、排序模式概览 4.2.1、回表排序模式 4.2.2、不回表排序模式 4.2.3、打包数据排序模式 4.2.4、三种模式比较 五、外部排序 5.1、普通外部排序 5.1.1、
阅读全文
摘要:前言 排序是数据库中的一个基本功能,MySQL也不例外。用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序。本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理
阅读全文
摘要:《高性能MySQL》 里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的(ps.需要考虑 ICP)。MySQL优化器将in这种方式转化成 n*m 种组合进行查询,最终将返回值合并,有点类似union但是更高效。 MySQL在
阅读全文
摘要:近几年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,这里整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点。目前为止将数据
阅读全文
摘要:在使用、学习MySQL的时候我们需要下载不同的版本的MySQL ,之前我们可以使用sandbox 快速搭建单节点或者一主多从的数据库。现在可以尝试使用 docker 利用已经存在的镜像迅速搭建一个单实例的数据库。 搜索仓库 docker仓库拉取 mysql 8.0.22 选择 star最多的MySQ
阅读全文
摘要:RC级别: create table t1(id int primary key, name varchar(30));insert into t1 values(1, 'a'),(4, 'c'),(7, 'b'),(10, 'a'),(20, 'd'),(30, 'b');commit; 案例一
阅读全文
摘要:01 前言 子查询,通俗解释就是查询语句中嵌套着另一个查询语句。相信日常工作中接触到 MySQL 的同学都了解或使用过子查询,但是具体它是怎样实现的呢? 查询效率如何? 这些恐怕好多人就不太清楚了,下面咱们就围绕这两个问题共同探索一下。 02 准备内容 这里我们需要用到3个表,这3个表都有一个主键索
阅读全文
摘要:前言 排序是数据库中的一个基本功能,MySQL也不例外。用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序。本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理
阅读全文
摘要:1、基本结论 SQL 的执行成本(cost)是 MySQL 优化器选择 SQL 执行计划时一个重要考量因素。当优化器认为使用索引的成本高于全表扫描的时候,优化器将会选择全表扫描,而不是使用索引。 下面通过一个实验来说明。 2、问题现象 如下结构的一张表,表中约有104w行数据: CREATE TAB
阅读全文
摘要:FLUSH TABLES WITH READ LOCK简称(FTWRL),该命令主要用于备份工具获取一致性备份(数据与binlog位点匹配)。由于FTWRL总共需要持有两把全局的MDL锁,并且还需要关闭所有表对象,因此这个命令的杀伤性很大,执行命令时容易导致库hang住。如果是主库,则业务无法正常访
阅读全文
摘要:一些重要的字符集 不幸的是,这个世界太大了,不同的人制定出了好多种字符集,它们表示的字符范围和用到的编码规则可能都不一样。我们看一下一些常用字符集的情况: ASCII字符集 共收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符。由于总共才128个字符,所以可以使用1个字节来进行编
阅读全文
摘要:在一个高负载的生产数据库上删除大表需要一些技巧,倘若直接drop table,将产生大量磁盘I/O,严重的会卡库,这是高可用服务所不能接受的。要优化删除表,需要了解其内部执行过程。 一、表删除过程 表删除原理上分为内存和磁盘两部分操作: 清除表相关的buffer pool页面。删除表相关的磁盘文件。
阅读全文
摘要:所以,我在一开始所提到的前提,mysql需要开启独立表空间。这个假设,百分九十的情况下是成立的。如果真的遇到了,你们公司的mysql采用的是共享表空间的情况,请你和你们家的运维谈谈心,问问为啥用共享表空间。 正确姿势 假设,我们有datadir = /data/mysql/,另外,我们有有一个dat
阅读全文
摘要:从存储上讲: - text 是要要进overflow存储。 也是对于text字段,不会和行数据存在一起。但原则上不会全部overflow , 会有768字节和原始的行存储在一块,多于768的行会存在和行相同的Page或是其它Page上。 - varchar 在MySQL内部属于从blob发展出来的一
阅读全文
摘要:cardinality = 某一列中不同值的个数 selectivity = 经过某个谓词过滤后的行数 / 表的总行数 * 100% selectivity = 索引列的cardinality / 表的总行数 * 100% 两种定义,前者是涉及where条件,后者是涉及索引。个人认为第一种更准确一点
阅读全文
摘要:在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本,作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点: sql_mode 默认值的改变 optimizer_switch 值的改变 备库升级影响主备复制 本文主要内容是MySQL升级到5.7版本之后,由于默认的 sql_mo
阅读全文
摘要:一、背景 1.1、需求来源 需要给客户将生产环境的数据恢复到测试环境,但是线上环境的xtrabackup全备数据量太大,拷贝下来比较麻烦,并且需要恢复的数据只有整库中的两张表的数据,所以客户只是将全备中的对应表的ibd文件以及frm文件拷贝下来了,要求根据ibd文件以及frm文件进行数据恢复。 1.
阅读全文