摘要:一、mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具。 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。 二、备
阅读全文
摘要:▍先介绍一下背景 团队正在一个为 SQL Server 构建数据目录项目的历程中,我们优化系统以实现解耦。这对我们来说非常重要,从根本上来说,我归结为两个核心原则,希望每个软件专业人员都能认同: 我们不希望系统复杂度随功能的增加而线性增长,这样会大大拖慢我们在业务发展速度以及对于价值的信心。 我们希
阅读全文
摘要:一、问题背景 基础环境: 主机类型:x3850 X6 操作系统:DB:Red Hat Enterprise Linux 9.1 7.8 存储:IBM存储,500GB 内存:64 G CPU型号:E7-4830 v3 @ 2.10GHz CPU核数:32CORE 数据库环境:8.0.27 问题现象:
阅读全文
摘要:在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具;它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来。 语法: 默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-创建表-锁表-禁用
阅读全文
摘要:案发现场 上午9:49,应用报警:错误码4103.ERR_ATOM_CONNECTION_POOL_FULL,提示数据库连接池已满。 在上午9:49至10:08的这段时间内,又陆续接收到了多个数据库异常报警,包括4200.ERR_GROUP_NOT_AVAILABLE、4201.ERR_GROUP_
阅读全文
摘要:Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据 1,登录mysql查看binlog日志的状态,输入show variables lik
阅读全文
摘要:本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也
阅读全文
摘要:JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 相对字符类型,原生的 JSON 类型具有以下优势: 在插入时能自动校验文档是否满足 JSON 格式的要求。 优化了存储格式。无需读取整个文档就能快
阅读全文
摘要:一、基本概念 1、MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。 2、外键可以是一对一的,一个表的记
阅读全文
摘要:一、基本概念 视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ] ; 创建视图需要create view 权限,并且对
阅读全文
摘要:使用方法:concat(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 mysql> select concat('11','22','33');+ +| concat('11','22','33') |+ +| 112233 |+ +
阅读全文
摘要:exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条 件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条
阅读全文
摘要:1.1 在命令行登录mysql,即可看到mysql的版本号 [root@heyong ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL con
阅读全文
摘要:1、MySQL的复制原理以及流程 (1)、复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;
阅读全文
摘要:当 MySQL 单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候 MySQL
阅读全文
摘要:记一次MySQL 5.7升级8.0的详细过程,聊聊我的思路,希望可以帮助大家。 以一个例子为切入点 一、升级背景 为什么要升级到MySQL8.0?大概多久进行一次? 大家可以参考下图记录的各个版本的发布时间,来确认各个版本的最终补丁日期: 从上图来看,当前处在官方支持生命周期的版本是MySQL 8.
阅读全文
摘要:前言 面试官:来说说,一千万的数据,你是怎么查询的? me:直接分页查询,使用limit分页。 面试官:有实操过吗? me:肯定有呀 此刻献上一首《凉凉》 也许有些人没遇过上千万数据量的表,也不清楚查询上千万数据量的时候会发生什么。 今天就来带大家实操一下,这次是基于MySQL 5.7.26做测试
阅读全文
摘要:根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老手,都是一如既往的count目前多数人的写法多次REVIEW代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查
阅读全文
摘要:一、前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程,把我坑得够惨。 二、过程 由于开发需要在生产环节中修复数据,需要执行120条SQL语句,需要将数据进行更新,于是开发连上了生产数据库,首先执行了第一条SQL update tablename set sour
阅读全文
摘要:有开发小哥咨询了一个问题,记录一下处理过程分享给有需要的朋友。问题如下:MySQL数据库中有几张表增删比较频繁、数据变动剧烈且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录,但是执行delete操作后发现磁盘空间并未释放,这是为什么?MySQL数
阅读全文