00:06
在MYSQL日常运维中,数据导入是常见的工作内容,但是MYSQL是不支持进度查看的。如果你是经常导入的话,还可以凭借经验预估个大概时间。当然,也可以使用第三方命令来查看导入进度。但是不太方便,本视频将使用一种简单的方式来查看MY导入进度。原理说明。Po下面pad下面的一个IO文件记录了该进程读取了多少数据,我们可以根据这个数据大小来除以。导入数据搜口文件大小来得到一个大概的进度。呃,直接演示一下吧。嗯,在之前的。
01:02
导入测试就不看了,我们重新做一下导入。我们首先查看这个导入进程。我们可以看到这个进程下面的。我们导入的烧烤文件,它是走的标准输入进去的,我们可以看一下这个文件的大小。大概20g左右。然后我们看一下它这个。IU所读取的数量。叫哎哟。大概读了600多兆吧,这也不知道多少,除一下吧。
02:00
然后除以它的总大小,就能得到一个百分比,大概达到3%左右。当然还可以看。这个文件描述符读了多少?比如说刚才这个文件表,呃。0,我们就可以看一下这个0。它的偏移量。比如说大概得了。一个G上下的话,应该是5%左右除一下吧。嗯,要乘以百万的话,它是零小数,它不是大概5%左右。当然这这样手动看的话比较麻烦,所以我们可以写成。整合一下命令,稍微好看一点。然后我们这个就循环,然后打印二叉的那个数量数据。
03:03
再除以总的大小,就能得到一个大概的进度,我们就可以动态的展示刚才的进度。但是这样可能也不是很直观,所以我们可以使用脚本。就是把线写好,然后封装在一起做成脚本。这样可能看起来更好看一点,但这个计算时间可能得多等一会儿,因为不一定准,我是按照每5秒来计算一次的。比如我们当前导入大概10%左右,还剩大概17分钟速度的话,大概10呃12代秒,这个速度可能不太稳定。按这个16兆算的话,也就是说还剩17分钟我们就可以打完,我们再来看一下这个脚本里面的内容吧。我这里的话是每隔5秒打印一次,这个时间是可以自己选的,让它可以显示的更频繁一点,看自己嘛,比如说我们改为。
04:05
2秒,每2秒打一次,可能看起来好看一点。稍微。但是数据量太大的话,它那个动态展死也不是那么好看。预估时间大概就17分钟,我们可以等个十几分钟再来看一下导入结果。现在差不多打了已经一半了,我再来说一下这个脚本的用法吧,这执行这个脚本后面。本来是应该要跟上买S导入进程的PID的,但是如果你只有一个进程的话,它是可以自动识别的。但是如果你有多个的话,就不好识别了。比如我这里只有一个,它是能自动识别的,正常使用的话应该是。
05:05
后面跟上他的进程号,跟他那个MYL导进程号的。如果有多个的话,你不跟的话,那就没法自动识别,我们来模拟一下吧。比如说我们现在他有两个进程啊。只有两个买车的进程,所以我们现在就没法做到自动识别,我们直接执行的话。它会检测到其中的,它会检测到了这一个啊,这一个不是我们导入进程,所以是不行的,我们就得手工的指定。进号就可以查看进度了,当然这个值的话懂吧,他这个速度不太稳定,估计还有个9分钟左右。嗯,这里呢,就快打完了,我们等一下吧,到时候验证一下他这个时间看对不对,误差大不大。
06:09
还有半分钟。20秒了,98%。到时候我们就看一下这个文件最新更新时间,还有这个窗口,看到到时候停的时间,我们就能。看它准不准。还有一秒钟,一秒钟啊。打完了我们看一下A,左边也确实打完了,我们再看一下这个文件时间也确实是现在,说明这个时间还是非常准确的。脚本呢,我脚本的地址呢,我放在评论区了,有兴趣的各位自己去下载来试一试吧。再见。
我来说两句