
mysql
文章平均质量分 58
刘先生我在呀
加油加油加油
展开
-
记录MySql删除42亿行数据表方法
修改完这些参数执行drop命令后,实现了秒级删除,业务负载正常。原创 2023-11-28 18:43:33 · 232 阅读 · 0 评论 -
Shell脚本实现Mysql持续kill功能-优化版
【代码】Shell脚本实现Mysql持续kill功能-优化版。原创 2023-07-19 17:58:41 · 188 阅读 · 0 评论 -
记录一次MySql长事务未提交可能导致的影响
从这里可以看到,对id=1修改失败,id=2就可以执行成功(kill掉未提交的事务后,所有堵塞的语句都正常执行了。表未记录,show processlist查看到。开启事务,执行update,对id=1进行修改。,都被第一个未提交的事务影响了。,此时也是获取不到源数据锁。再打开另一个窗口,执行。打开另一个窗口,执行。原创 2022-11-15 13:11:16 · 1371 阅读 · 0 评论 -
记录一次数据库变更失败
user_uinuser_uin测试环境已执行(1000万数据量,变更时间为10分钟)因为test 表有外健约束,使用pt工具的话,会和之前有一点差异,需要加上 --alter-foreign-keys-method这个参数具体差异是,原来是两个rename的逻辑,但是现在是drop 原父表,然后再rename 新表,drop的时候会出现锁表,在测试环境测试drop是花费了4.5秒可能出现的隐患:1.删除原父表以及重命名新表这段时间很短,如果这段时间更改子表程序有可能会报错;原创 2022-11-10 12:49:16 · 713 阅读 · 0 评论 -
MySQL8 幻读的实战演练
测试数据:mysql> select * from a1;+----+------+------+------+------+| id | a | b | c | d |+----+------+------+------+------+| 1 | 1 | 1 | 1 | 1 || 2 | 2 | 2 | 2 | 2 || 3 | 3 | 3 | 3 | 3 || 4 | 4原创 2022-10-05 09:36:01 · 318 阅读 · 0 评论 -
使用shell脚本分批删除mysql大表数据(一主三从)---优化版本
最近在工作中遇到了一个需求,需要对一个8亿数据量的大表使用pt工具修改表结构,因为在业务侧这个确实也没有用到这个表这么久的数据,所以顺便优化一下大表,想的是只保留7天数据即可,所以这里使用shell脚本来进行对表删除数据,这个mysql的架构是一主三从,所以删除的时候要考虑到主从同步延迟问题。PS:删除的时候一定要注意观察CPU利用率和主从同步延迟问题。原创 2022-09-24 21:55:29 · 740 阅读 · 0 评论 -
使用shell脚本分批删除mysql大表数据(一主三从)
最近在工作中遇到了一个需求,需要对一个8亿数据量的大表使用pt工具修改表结构,因为在业务侧这个确实也没有用到这个表这么久的数据,所以顺便优化一下大表,想的是只保留7天数据即可,所以这里使用shell脚本来进行对表删除数据,这个mysql的架构是一主三从,所以删除的时候要考虑到主从同步延迟问题。PS:删除的时候一定要注意观察CPU利用率和主从同步延迟问题。原创 2022-09-20 23:37:09 · 884 阅读 · 0 评论 -
腾讯云产品---mysql 逻辑备份大表以及手动恢复表数据实战
说明:为节约存储空间,云数据库 MySQL 的物理备份和逻辑备份文件,都会先经过 qpress 压缩,后经过 xbstream 打包(xbstream 为 Percona 的一种打包/解包工具)进行压缩与打包。原创 2022-09-15 23:00:00 · 882 阅读 · 0 评论 -
MYSQL8 pt-online-schema-change在线修改大表结构--附带Shell脚本实战
pt-online-schema-change是percona公司开发的一个工具,在percona-toolkit包里面可以找到这个功能,它可以在线修改表结构原理首先它会新建一张一模一样的表,表名一般是_new后缀然后在这个新表执行更改字段操作然后在原表上加三个触发器,DELETE/UPDATE/INSERT,将原表中要执行的语句也在新表中执行最后将原表的数据拷贝到新表中,然后替换掉原表表数据量 6400w ,变更时长:1h23m, 锁表时间4分钟,大家一定要注意主从同步的延迟时间!!!文档。原创 2022-09-14 14:14:59 · 1173 阅读 · 0 评论 -
Shell脚本批量kill MYSQL大于1000秒语句
每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。在平时工作中,经常会出现运行时间长的sql。下面就用shell脚本实现批量kill。原创 2022-09-09 19:10:48 · 566 阅读 · 0 评论 -
探索MySQL not in到底走索引吗?
探索MySQL not in到底走索引吗?实战总结原创 2022-06-04 12:26:58 · 6488 阅读 · 0 评论 -
MySQL在存储过程中使用while批量插入数据(批量提交和单个提交的性能差异)
MySQL在存储过程中使用while批量插入数据(批量提交和单个提交的性能差异)原创 2022-06-02 18:09:59 · 705 阅读 · 0 评论 -
MySQL8 RC和RR隔离级别的实战演练
MySQL8 RC和RR隔离级别的实战演练原创 2022-04-23 19:00:41 · 1275 阅读 · 0 评论 -
MySQL8.0 磁盘空间、数据目录、mysql系统数据库
一、MySQL 如何使用磁盘空间MySQL Server会通过几种方式使用其磁盘空间,主要的目录和文件都会放在一个称为”服务数据目录”(server’s data directory)的地方。MySQL会使用这个数据目录来存储二、数据目录磁盘空间的主要用途是数据目录。数据目录的位置是可配置的。– Linux 中的默认位置是 /var/lib/mysql。– 所有数据库的 InnoDB 重做日志文件和撤消表空间都位于数据目录级别。InnoDB 系统表空间包含双写缓冲区和更改缓冲区。每个数原创 2022-03-31 20:57:25 · 1691 阅读 · 0 评论 -
MySQL8.0连接协议以及3306、33060、33062端口作用
一、MySQL连接层:连接层为每个连接维护一个线程。该线程处理查询执行。 在连接可以开始发送 SQL 查询之前,连接由验证用户名、密码和客户端主机。 连接层通过多种连接协议接受来自应用程序的连接:TCP/IPUNIX 套接字共享内存命名管道如下图所示:二、连接协议:协议在客户端库和驱动程序中实现。连接协议的速度因本地设置而异。除了旧版 MySQL 经典协议之外,MySQL X 协议还引入了MySQL 5.7.12 并在 MySQL 8.0 中默认启用。MySQL 使用 TCP原创 2022-03-28 14:01:48 · 18536 阅读 · 0 评论 -
MySQL8安装多实例实战(mysqld_multi多实例管理工具)
MySQL8安装多实例实战(mysqld_multi多实例管理工具)原创 2022-03-27 17:27:18 · 1695 阅读 · 0 评论 -
关于MySQL的lock wait timeout exceeded解决方案
一、关于MySQL出现lock wait timeout exceeded; try restarting transaction 的解决方案。我们可以通过到information_schema 中来进行查找被锁的语句。解释:information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在i转载 2021-12-21 09:14:31 · 9361 阅读 · 0 评论 -
MySQL事务隔离级别介绍和实战
事务还会通过锁机制满足隔离型。在InnoDB存储引擎中,有不同的隔离级别,它们有着不同的隔离性。为什么要设置隔离级别?在数据库操作中,在并发的情况下可能会出现如下问题:脏读(Dirty Read):当前事务能够看别的事务未提交的数据。A事务读取B事务尚未提交的数据并在此基础上操作,而B事务进行回滚,那么A读取到的数据就是脏数据。解决方法:如果在第一个事务提交前,任何其他事务不可读取其修改过的值,则可避免该问题。不可重复读(Non-repeatable Reads):一个事务对同一行数据重复原创 2021-01-11 17:56:34 · 129 阅读 · 0 评论