00:00
那我们这堂课呢,就是来说一下。循环分批次更新这个数据。那么这个工具呢,是我之前写了一个批量修改的一个工具,那么我们在嗯,日常的上线啊,维护中啊。可能有时候那个研发呢,会给你提供一些思考,那比如说就是这个案例啊,让你去更新。那么大概这个一天的数据啊,有可能也是一个数据。去批量的去那个洗漱,那么这条circle呢,总共呢,你看看一共是100多万行嘛。那如果你要是直接执行的话,可能会影响这个主从同步延迟,那所以呢,这里呢,我是通过两个。工具啊去实现这个,嗯,这里的概念呢,这这里的思路呢,就是通过循环啊,我这里是10万行记录啊,你可以根据你的机器的性能去做一下调整,那如果呢,你这个ID呢。
01:02
如果呢,你这个ID是都是连续性的,嗯,并且呢,这个条件呢,没有很多啊,就是通过时间字段啊,ID是连续的,那么你可以通过第一种思路啊,是通过直接的去。做下去那个更改,那么你就直接执行一下这个驱动,然后呢,直接就执行这个脚本就可以了,那这个脚本呢。呃,我给大家演示一下,你大概修改是什么什么东西啊。那这里呢,你只需要。先得到这个起始的ID,然后呢,得到那个结尾的ID。啊,这是业务的啊,你先去查一下得到起始ID和结尾ID,然后呢,把这里填一下的结尾的填上你的,呃,那个主题信息啊。啊,这是库名,这是表名,然后这一步其实就是算执行完了。
02:00
啊,然后你直接执行这个脚本,然后他会批量的去给你洗数。啊,这是第一种思那个思路啊,那第二种思呢,就是说如果你的IID啊,是不是连续性的,可能那个外条件比较多,那这种情况还该怎么办呢?你就需要先把主见啊。主题ID先导到一张离职表里的,然后。通过我这个写的是Python脚本啊,去去去循环批量去部署更新。那第一步呢,你就先我这里呢,就相当于就是批量全量的啊,给大家演示一下。通过ID这种方式到一张临时表,然后再去。那这里呢,将给大家演,嗯,给大家演演示一下。这个呢?是,我有。大概,呃,这里有10万条记记录啊。
03:04
啊,这里有10万条那个记录,然后呢,我们看一眼啊,他的信息。Oh。ID。啊,我们这里呢,到时候呢,就把这个字段C啊。这个pad自转pad这个值。啊,我们来去做一下修改啊,我们先第一步啊。首先呢,你需要把我的脚本都下载好了啊,这是先下载好了以后。我们先啊。先把这先给删了。那这里呢,我们先全量的啊,通过ID主键排序。导出到一个文件里头,叫tmp目录下的。
04:02
这个文件里头啊,我们直接回车就行了。总共导出10万条,这是这里只是给大家演示一下这个工具怎么用的啊。我们来看一下效果啊,这个大概就是ID啊。啊看,然后呢,我们就去批量的啊去更新。啊,我们更改这个Python这个文件啊。然后呢,这个都是一样,你改一下主机的配置信息。这里呢,就是1万条做去更改调整啊,就是更新的1万条,每次更新1万条。然后呢,往下走,这个呢,你修改一下。你这个文件存放的路径,我这里默认就是temp。偏僻幕下的啊。
05:01
这个文件。这个变量。就是这个。My table啊,就是这个变量值是这个啊。然后呢,你把这里呢,你改一下你的口啊,你上线的circle口要改成什么东西。啊,我这里呢。就叫NBA啊。然后这里呢,通过主ID啊这种方式去改的,然后我们存一下啊,通过每次刷新这个主ID啊去改。然后这时候呢,你就直接执行Python。啊,这样让他去批量的循环的去更改。回车。啊,这里现在正在改呢,我们。这边来看一眼啊。啊,你看他现在正在刷新的啊,通过组建ID的方式看见没有。
06:03
啊,应该一会儿就刷完了,到时候我们看看这个效果啊。这里你看这工具已经执行完了,我们看看是否改变了NBA啊,刚那个值啊。你看这已经改了NBA了是吧,我们再倒排一下。啊,相当于全表。全部给更新了。Pad等于。NBA。来看一眼啊。啊,你看。啊,就通过这种的,通过这两种方式啊。那第一种呢,就是如果你的ID是连续的。那么你就直接通过这个P2P这个就直接刷下去就完了。呃,第二种呢,如果你的ID是不连续的啊,你需要先把你的主导到一个临临时表里头,然后呢,通过我这个Python脚本去做寻量,呃,分批次更改循环。
07:08
那么今天呢,就给大家讲解一下。我们生产环境中经常遇到的那个,呃,更改数据是怎么做的啊,你千万不要直接执行啊,因为直接执行你肯定会出现延迟的,你需要通过这种方式。每次1万条这么去刷改去每次更新1万条就去这么刷新,这样的话就避免主库出现延迟了,那今天我们这堂课呢,就到这儿了。
我来说两句