【 MySQL DBA 】
文章平均质量分 83
MySQL不仅仅是CURD,还有更多高级的用法,本系列带你全面了解MySQL DBA
优惠券已抵扣
余额抵扣
还需支付
¥199.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
HarkerYX
学习各类技术CSDN博客专家!
热爱日系指弹!
目前就职新能源汽车行业!
展开
-
《MySQL DBA:学习导图》
《MySQL DBA:学习导图》《MySQL DBA:MySQL数据库前景介绍》更新中,时期比较长,预计年底完成。。。原创 2020-05-14 14:31:01 · 1501 阅读 · 1 评论 -
《MySQL DBA: 性能测试_Tpcc》
由Percona公司开发的tpcc测试工具。原创 2023-10-24 17:06:17 · 383 阅读 · 0 评论 -
《MySQL DBA: Purge 死锁》
因为是唯一索引,需要做唯一性检查,从老的记录 20* 开始检查(第一个小于等于自己的值),则此时 20* 上要加上一把 S lock ,然后往下检查到第一个不相等的记录,即 记录30 ,然后退出,但是这个 记录30 也要 加上S lock。在这个场景中,新插入的记录 20 ,和已经存在的记录 20* 相等,且带有唯一约束,那此时就需要在记录 20* 上增加 S lock( with gap)在插入 新的记录20 的时候,发现下一条记录30上有锁,则自己插入的时的 隐式锁 提升为 显示锁 (见插入步骤)原创 2023-07-02 16:49:23 · 592 阅读 · 1 评论 -
《MySQL DBA: Purge》
delete-mark的记录最后会被purge线程回收,Purge会检测记录上是否有其他事物在引用undo,如果没有就可以删除innodb_purge_threads (5.6以后),可以设置的大一些,回收的速度会快一些。原创 2023-07-02 16:42:03 · 556 阅读 · 0 评论 -
《MySQL DBA: 分布式事务》
如果发生commit失败,事物就变成了 悬挂 事物,需要人工介入,查看prepare是否成功,而后决定commit 或者 rollback。MySQL XA事务并不完美,client退出导致 prepare 成功事务丢失,外部的 XA prepare 成功不写日志。分布式事物是 串行 执行的(不能快照读),在分布式事物中,使用的是两阶段事物,如果prepare成功了,就一定要提交。上述在单实例中操作分布式事物其实是没有意义的,仅仅作为一个语法的演示。了解就行,基本用不到,也叫外部事务。原创 2023-03-15 15:27:41 · 319 阅读 · 0 评论 -
《MySQL DBA: Undo 回滚日志》
MySQL5.5 中 只有一个 Rollback Segment,即 只有1024个 undo log segment,那就表示 最多 只有能有 1024个并发 事物(线程)去执行 undo。Undo Log:数据库事务开始之前,会将要修改的记录存放到 Undo 日志里,当事务回滚时或者数 据库崩溃时,可以利用 Undo 日志,撤销未提交事务对数据库产生的影响。undo log records – undo log记录分为 两种 , insert 的 undo 和 update 的undo。原创 2023-03-15 15:33:11 · 415 阅读 · 1 评论 -
《MySQL DBA: 插入意向锁》
判断 30 上面 如果有 Gap Lock / Next-Key Lock ,则无法插入,因为锁的范围是 (10, 30) / ( 10, 30];在 30 上增加 insert intention lock (此时处于 waiting 状态),当 Gap Lock / Next-Key Lock 释放时,等待的事物(transaction)将被 唤醒 ,此时 记录30 上才能获得 insert intention lock ,然后再插入 记录25。假设现在有记录 10, 30, 50, 70;原创 2022-10-24 15:58:11 · 1902 阅读 · 0 评论 -
《MySQL DBA: BinLog 二进制日志 (一)》
1、假设,如果 没有 第一步的 prepare log ,而是直接写第二步的 MySQL binlog ,以及接着写第三步的 InnoDB commit log : 此时假设出现 binlog写入成功 ,而 commit log(redo)写入失败 的情况(比如宕机),那随后机器重启时 恢复 时,就会对该事物 回滚;假设更新一张几百万的表,产生的 binlog 可能会有几百兆,当commit时,写入的数据量就是几百兆,所以会有“阻塞”等待的效果。]),ROW要记录每行的变化,所以比较占用空间。原创 2022-10-07 23:12:14 · 649 阅读 · 0 评论 -
《MySQL DBA: 锁与并发》
两个事务T1,T2. 事务T1读取了一个表中的某个字段,事务T2在表中插入了一些新的行,事务T1再次读取的时候就会多出几行,就好像自己出现了幻觉一样。两个事务T1,T2. 事务T1读取了一个表中的某个字段,事务T2在表中插入了一些新的行,事务T1再次读取的时候就会多出几行,就好像自己出现了幻觉一样。两个事务T1,T2. 事务T1读取了事务T2已经被更新但还没有被提交的字段,若事务T2回滚,事务T1读取的内容是临时且无效的。解决 脏读 、 不可重复读 和 幻读 (ANSI SQL)InnoDB(默认)原创 2022-10-07 23:31:02 · 423 阅读 · 0 评论 -
《MySQL DBA: Redo Log 重做日志》
因为当要覆盖log_file中的log_block时,如果该log_block中的脏页还没有进行刷新的话,则需要等待这个脏页进行刷新。1可以保证数据不丢失,0可能会丢失1秒的数据,2如果是mysql停止,不会丢数据,因为在缓存里面,但是当系统宕机了,在缓存里面的数据就丢失了。1-事物每次提交的时候要确保日志(redologbuffer)写入磁盘,即使宕机,也可以通过redo恢复,达到持久性的要求。5.5版本的redo文件的总大小(num*size)是有限制的(小于4G)...原创 2022-07-18 21:49:56 · 532 阅读 · 0 评论 -
《MySQL DBA: 事务类型》
一、事务类型1、事物相关的主题 transaction redo undo purge group commit XA transaction programming 2、开启一个事物方式一begin; SQL…; commit / rollback;方式二start transaction; SQL…; commit / rollback; 用到 start transactio原创 2022-05-03 22:27:00 · 855 阅读 · 0 评论 -
《MySQL DBA: Dead_Lock》
原创 2020-06-28 13:55:20 · 118 阅读 · 0 评论 -
《MySQL DBA: Lock_Algorithm 2》
一、锁算法二 每个事物每个页 一个锁对象 约100个字节 通过位图存放锁信息 内存占用少 没有锁升级 1、锁重用 锁开销进一步下降 # 下面情况虽然形式上有2把锁,但是其实只有一把!begin;select * from t where rowid = xxx for update;select * from t where rowid = yyy for update;begin;select * from t原创 2022-04-06 21:29:54 · 1204 阅读 · 0 评论 -
《MySQL DBA: Lock_Algorithm 1》
一、锁的算法一 Record Lock (记录锁) 单个行记录上的锁 Gap Lock(间隙锁) 锁定一个范围,但不包含记录本身 MySQL :: MySQL 5.7 Reference Manual :: 14.7.1 InnoDB Locking 主要用于二级索引 Next-Key Lock Gap Lock + Record Lock,锁定一个范围,并且锁定记录本身 MySQL :: M原创 2020-06-28 13:55:49 · 104 阅读 · 0 评论 -
《MySQL DBA: Auto_Increasing_Lock》
一、自增锁 一个表 一个 自增列 AUTO_INCREMENT PK 在事物提交前就释放 其他的锁是在事物提交时才释放 如果AI锁在提交后才释放,那其他事物就没法插入了,无法实现并发 1、AI自增锁示例---- 终端会话1--mysql> create table t_ai_1(a int auto_increment, b int , primary key(a));Query OK, 0 rows affected (0.1原创 2020-06-29 11:00:49 · 111 阅读 · 0 评论 -
《MySQL DBA: Lock》
一、锁1. 锁介绍• 什么是锁 ◦ 对共享资源进行并发访问 ◦ 提供数据的完整性和一致性• 每个数据库的锁的实现完全不同 ◦ MyISAM表锁 ◦ InnoDB行级锁(与Oracle的行锁不同) ◦ MSSQL(Microsoft SQL Server) 行级锁 with 锁升级• latch ◦ mutex ◦ rw-lock2. lock 与 latch 的区别latch 是针对程序内部的资源(比如:全局变量)的锁的定义,而这里的...原创 2022-04-06 17:37:22 · 475 阅读 · 0 评论 -
《MySQL DBA:B+树介绍》
原创 2020-05-22 18:30:53 · 275 阅读 · 0 评论 -
《MySQL DBA: InnoDB_透明表空间压缩》
dd原创 2020-05-26 16:37:44 · 370 阅读 · 0 评论 -
《MySQL DBA:MySQL 5.6,5.7安装》
一、MySQL安装安装之前要介绍一个东西,Ubuntu server 16.04 安装rz、sz工具 安装通用步骤: 解压缩mysql-VERSION-linux-glibcx.x-x86_64.tar.gz 打开INSTALL_BINARY文件,按照shell>开头的步骤进行操作 将export PATH=/安装路径/mysql/bin:$PATH添加到/etc/profile chkconfig mysqld on或者chkconfig mysqld.server on.原创 2020-05-14 17:39:16 · 219 阅读 · 0 评论 -
《MySQL DBA:官网测试数据库安装》
一、官网数据库下载MySQL官网有自带的数据库employees,有利于我们学习测试。数据库相关文档地址: https://dev.mysql.com/doc/employee/en/数据库操作步骤参考文档:https://dev.mysql.com/doc/employee/en/employees-installation.html下载压缩包二、安装导入以及校验数据库1.解压缩yexiang@localhost:<smb_share>$ unzip.原创 2020-05-21 15:00:47 · 223 阅读 · 0 评论 -
《MySQL DBA: 5.6 ,5.7 版本的 sys库》
dd原创 2020-06-01 17:17:20 · 244 阅读 · 0 评论 -
《MySQL DBA: Mysql 备份_Xtrabackup》
dd原创 2020-06-28 14:07:47 · 171 阅读 · 0 评论 -
《MySQL DBA:体系、Workbench、Utilities介绍》
一、MySQL体系结构1. 数据库数据库(数据库文件)是一个或者一组二进制文件,通常来说存在与文件系统之上。2. 数据库实例由数据库后台进程/线程以及一个共享区域组成(程序的概念),数据库实例是用来操作数据库文件的注意:MySQL中,数据库实例和数据库是一一对应的。没有Oracle的一对多(RAC)的机制。3. MySQL体系结构 单进程多线程结构 不会影响MySQL的性能,看程序如何写。(多进程程序,进程间通信开销大于多线程) 存储引擎的概念 可以理解成文件原创 2020-05-20 11:03:27 · 276 阅读 · 0 评论 -
《MySQL DBA: Rank/视图/UNION 进阶》
DD原创 2020-05-22 18:21:27 · 195 阅读 · 0 评论 -
《MySQL DBA: InnoDB_压缩页 CheckPoint LSN》
dd原创 2020-05-26 16:43:42 · 206 阅读 · 0 评论 -
《MySQL DBA:临时表的创建及约束》
dd原创 2020-05-15 18:38:29 · 207 阅读 · 0 评论 -
《MySQL DBA:SSL连接》
dd原创 2020-05-15 18:31:05 · 191 阅读 · 0 评论 -
《MySQL DBA: 存储过程/自定义函数进阶》
dd原创 2020-05-22 18:26:34 · 224 阅读 · 0 评论 -
《MySQL DBA: Sysbench 工具》
一、sysbench 工具1.sysbench 介绍SysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它主要包括以下几种方式的测试:cpu性能 磁盘io性能 调度程序性能 内存分配及传输速度 POSIX线程性能 数据库性能(OLTP基准测试)目前sysbench主要支持 MySQL,pgsql,Oracle 这3种数据库。2. 安装yexiang@localhost:<smb_share>$ git.原创 2020-06-01 17:15:43 · 212 阅读 · 0 评论 -
《MySQL DBA:同版本、多版本的多实例安装》
dd原创 2020-05-15 18:30:24 · 177 阅读 · 0 评论 -
《MySQL DBA: Mysql 备份_Mysqldump》
dd原创 2020-06-28 14:08:18 · 188 阅读 · 0 评论 -
《MySQL DBA: InnoDB_Secondary Index》
dd原创 2020-05-26 17:45:30 · 176 阅读 · 0 评论 -
《MySQL DBA:存储引擎特性》
dd原创 2020-05-15 18:29:52 · 182 阅读 · 0 评论 -
《MySQL DBA:升级/参数/连接/权限》
一、升级与回退升级:(5.6 升级到5.7)1. 环境我拷贝了一份5.6作为测试,并且把数据库data备份一份作为回退测试用,mysql连接指向测试版本,如果你是拷贝的目录注意各个目录的组和用户和之前的最好保持一致。注意:这里的测试所以的东西都是原始目录下,之前的什么my.cnf东西都还没有去处理以及拷贝到/etc/my.cnf 等2. 5.6与5.7 原始数据库对比5.6原始数据库5.7原始数据库3. 升级①首先停止运行的数据库yexiang@lo原创 2020-05-15 18:07:19 · 187 阅读 · 0 评论 -
《MySQL DBA:Mysql 性能测试_Sysbench》
简单高效的基准测试工具Oracle官方也使用该工具对MySQL进行测试根据互联网应用特点进行测试可以根据某个具体操作进行测试最新版本0.5。原创 2020-06-28 14:07:16 · 406 阅读 · 1 评论 -
《MySQL DBA: CURD进阶》
DD原创 2020-05-22 18:19:54 · 195 阅读 · 0 评论 -
《MySQL DBA: InnoDB_doublewrite/ChangeBuffer/AHI/FNP》
dd原创 2020-05-26 16:44:52 · 195 阅读 · 0 评论 -
《MySQL DBA: MySQL Disk Scheduler》
yexiang@localhost:<~>$ iostatThe program 'iostat' is currently not installed. You can install it by typing:sudo apt install sysstatyexiang@localhost:<~>$ sudo apt install sysstatyexiang@localhost:<~>$ iostat -xmLinux 4...原创 2020-05-28 19:10:11 · 223 阅读 · 0 评论 -
《MySQL DBA: MySQL Disk RAID》
顺序读写频繁的应用,传输大量连续数据,如电视台的视频编辑,视频点播VOD(Video On Demand),关注连续读写性能。数据吞吐量是关键衡量指标。读取10000个1KB文件,用时10秒 Throught(吞吐量)=1MB/s ,IOPS=1000 追求IOPS。随机读写频繁的应用,如小文件存储(图片)、OLTP数据库、邮件服务器,关注随机读写性能,IOPS是关键衡量指标。读取1个10MB文件,用时0.2秒 Throught(吞吐量)=50MB/s, IOPS=5 追求吞吐量。原创 2020-05-26 17:46:05 · 194 阅读 · 0 评论 -
《MySQL DBA:MySQL数据库前景介绍》
一、MySQL数据库前景介绍1. 推荐书籍2. MySQL的趋势3. 主流数据库对比4. MySQL数据库版本分支5. MySQL数据库与中国6. MySQL就业机会原创 2020-05-14 14:16:31 · 591 阅读 · 0 评论