问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何查看mysql运行,访问记录等日志

发布网友 发布时间:2022-04-20 23:06

我来回答

1个回答

热心网友 时间:2023-06-27 03:39

有时候我们会不小心对一个大表进行了 update,比如说写错了 where 条件......

此时,如果 kill 掉 update 线程,那回滚 undo log 需要不少时间。如果放置不管,也不知道 update 会持续多久。

那我们能知道 update 的进度么?

实验

我们先创建一个测试数据库:

快速创建一些数据:

连续执行同样的 SQL 数次,就可以快速构造千万级别的数据:

查看一下总的行数:

我们来释放一个大的 update:

然后另起一个 session,观察 performance_schema 中的信息:

可以看到,performance_schema 会列出当前 SQL 从引擎获取的行数。

等 SQL 结束后,我们看一下 update 从引擎总共获取了多少行:

可以看到该 update 从引擎总共获取的行数是表大小的两倍,那我们可以估算:update 的进度 = (rows_examined) / (2 * 表行数)

9?5小贴士

information_schema.tables 中,提供了对表行数的估算,比起使用 select count(1) 的成本低很多,几乎可以忽略不计。

那么是不是所有的 update,从引擎中获取的行数都会是表大小的两倍呢?这个还是要分情况讨论的,上面的 SQL 更新了主键,如果只更新内容而不更新主键呢?我们来试验一下:

等待 update 结束,查看 row_examined,发现其刚好是表大小:

那我们怎么准确的这个倍数呢?

一种方法是靠经验:update 语句的 where 中会扫描多少行,是否修改主键,是否修改唯一键,以这些条件来估算系数。

另一种方法就是在同样结构的较小的表上试验一下,获取倍数。

这样,我们就能准确估算一个大型 update 的进度了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
密室逃脱8迷失乐园攻略大全 密室逃脱8迷失游乐园通关攻略 密室逃脱8逃出红色豪宅第7关怎么过_第7关卡通关图文攻略 密室逃脱8卖火柴的小女孩旋转六边形介绍_密室逃脱8卖火柴的小女孩旋转六... 跨国行李托运 房屋复式是什么意思? 什么叫复式房子 请问 为了减掉身上的赘肉 除了锻炼以外 在饮食上要注意什么 请详细点... 淘宝买家购物满500元后使用信用卡的时候就不能支付 笔记本电脑如何保护 水韵江苏旅游年卡和苏州休闲年卡哪个划算 mysql如何查看外键 怎么查看mysql版本? 如何查看mysql执行进度 mysql常用查询命令? 如何查看mysql有什么数据库 如何查看mysql数据库操作记录日志? mysql查看数据库所在位置 怎么查看mysql版本 如何查看mysql数据库 梦见打架,奇怪 梦见一群道人为我念经还冒一片紫气什么意思 梦到打架 梦见打架代表什么 周公解梦跟道士干仗 vivox21i充电特效吗 vivo x21 充电屏幕显示 怎么关 vivo手机充电不显示双引擎闪充 vivox21手机充电,在充的过程中右上角电池标志里有显示"⚡"这个标识 你好,麻烦问下vivox21ia如何在充电时看出是闪充? vivox21充电提示音哪里设置 怎么查看mysql数据库服务是否开启? 查询mysql数据库中所有表名 如何查看mysql数据库操作记录日志 怎样查看mysql服务是否启动 怎么查看mysql数据库服务是否开启 mysql怎么查看版本 我想看3D彩报的全部内容,三毛图,脑筋转弯,福娃,一语定三码,小故事等 农行网银证书更新失败,出现CF67怎么办? 农行数字证书错误 怎么解决? 农行网银证书更新失败,公共页面下载证书也失败 农行网银证书:此网站的安全证书有问题? 农业银行网上银行证书错误 农行登陆网银总出现证书错误怎么回事 404 Not Found 为什么农业银行的网上银行登陆时总提示密码输入错误或已经超时失效 农行网银证书错误,此网站的安全证书有问题。 农行K宝证书更新错误 农行网银证书登陆为什么显示此网站的安全证书有问题 农行网银证书错误 农行 网银 证书错误