当前位置: 首页 > news >正文

postgresql根据主键ID字段分批删除表数据

生产环境针对大表的处理相对比较麻烦。

方案1、直接truncate,可能会遇到系统卡主的情况,因为truncate的过程中会对表进行加锁,会导致数据不能正常的写入
方案2、创建一个同结构的表结构,rename旧表,不停业务rename表担心会影响业务,建议是先停止接口进程,停止写入后再rename,然后创建一个同样的表结构
方案3、批量删除数据后再truncate回收空间,批量删除过程中,会产生比较多的wal日志,同时还要考虑主从复制的延迟,但是稳妥,不会影响系统卡死

以下通过ID字段分批删除数据示例:

清理脚本如下:$ cat del.sh 
#!/bin/bash
#$1对应表名,$2对应主键列,$3对应一次删除多少行i=`psql -h 127.0.0.1 -U postgres -d t1db -c "select ceil(count(1)/${3}::float) from ${1} where  created_at > '2024-12-30 23:59:59'"`
n=`echo ${i} |awk -F ' ' '{print $3}'`
c=1
#echo ${n}
#echo `echo ${i} |awk -F ' ' '{print "一共需要执行",$3,"次"}'`
while [ $c -le $n ]
doecho `date`echo '一共需要执行'${n}'次,当前执行第'${c}'次'echo '一共需要执行'${n}'次,当前执行第'${c}'次' > /home/postgres/deldata.txtreturns=`psql -h 127.0.0.1 -U postgres -d t1db -c "delete from ${1} where ${2} =any (select ${2} from ${1} where  created_at > '2024-12-30 23:59:59' limit ${3} );"`echo `date`c=$[ $c+1 ]
done

清理日志记录

[postgres@oradb ~]$ sh -x del.sh test_table id 10000
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'select ceil(count(1)/10000::float) from test_table where  created_at > '\''2024-12-30 23:59:59'\'''
+ i=' ceil 
------48
(1 row)'
++ echo ceil ------ 48 '(1' 'row)'
++ awk -F ' ' '{print $3}'
+ n=48
+ c=1
+ '[' 1 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:54 CST 2025
Fri Jan 24 09:16:54 CST 2025
+ echo 一共需要执行48次,当前执行第1次
一共需要执行48次,当前执行第1次
+ echo 一共需要执行48次,当前执行第1次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:54 CST 2025
Fri Jan 24 09:16:54 CST 2025
+ c=2
+ '[' 2 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:54 CST 2025
Fri Jan 24 09:16:54 CST 2025
+ echo 一共需要执行48次,当前执行第2次
一共需要执行48次,当前执行第2次
+ echo 一共需要执行48次,当前执行第2次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:54 CST 2025
Fri Jan 24 09:16:54 CST 2025
+ c=3
+ '[' 3 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:54 CST 2025
Fri Jan 24 09:16:54 CST 2025
+ echo 一共需要执行48次,当前执行第3次
一共需要执行48次,当前执行第3次
+ echo 一共需要执行48次,当前执行第3次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ c=4
+ '[' 4 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ echo 一共需要执行48次,当前执行第4次
一共需要执行48次,当前执行第4次
+ echo 一共需要执行48次,当前执行第4次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ c=5
+ '[' 5 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ echo 一共需要执行48次,当前执行第5次
一共需要执行48次,当前执行第5次
+ echo 一共需要执行48次,当前执行第5次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ c=6
+ '[' 6 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ echo 一共需要执行48次,当前执行第6次
一共需要执行48次,当前执行第6次
+ echo 一共需要执行48次,当前执行第6次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ c=7
+ '[' 7 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ echo 一共需要执行48次,当前执行第7次
一共需要执行48次,当前执行第7次
+ echo 一共需要执行48次,当前执行第7次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ c=8
+ '[' 8 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:55 CST 2025
Fri Jan 24 09:16:55 CST 2025
+ echo 一共需要执行48次,当前执行第8次
一共需要执行48次,当前执行第8次
+ echo 一共需要执行48次,当前执行第8次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ c=9
+ '[' 9 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ echo 一共需要执行48次,当前执行第9次
一共需要执行48次,当前执行第9次
+ echo 一共需要执行48次,当前执行第9次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ c=10
+ '[' 10 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ echo 一共需要执行48次,当前执行第10次
一共需要执行48次,当前执行第10次
+ echo 一共需要执行48次,当前执行第10次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ c=11
+ '[' 11 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ echo 一共需要执行48次,当前执行第11次
一共需要执行48次,当前执行第11次
+ echo 一共需要执行48次,当前执行第11次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ c=12
+ '[' 12 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ echo 一共需要执行48次,当前执行第12次
一共需要执行48次,当前执行第12次
+ echo 一共需要执行48次,当前执行第12次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ c=13
+ '[' 13 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ echo 一共需要执行48次,当前执行第13次
一共需要执行48次,当前执行第13次
+ echo 一共需要执行48次,当前执行第13次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ c=14
+ '[' 14 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:56 CST 2025
Fri Jan 24 09:16:56 CST 2025
+ echo 一共需要执行48次,当前执行第14次
一共需要执行48次,当前执行第14次
+ echo 一共需要执行48次,当前执行第14次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ c=15
+ '[' 15 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ echo 一共需要执行48次,当前执行第15次
一共需要执行48次,当前执行第15次
+ echo 一共需要执行48次,当前执行第15次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ c=16
+ '[' 16 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ echo 一共需要执行48次,当前执行第16次
一共需要执行48次,当前执行第16次
+ echo 一共需要执行48次,当前执行第16次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ c=17
+ '[' 17 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ echo 一共需要执行48次,当前执行第17次
一共需要执行48次,当前执行第17次
+ echo 一共需要执行48次,当前执行第17次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ c=18
+ '[' 18 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ echo 一共需要执行48次,当前执行第18次
一共需要执行48次,当前执行第18次
+ echo 一共需要执行48次,当前执行第18次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ c=19
+ '[' 19 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ echo 一共需要执行48次,当前执行第19次
一共需要执行48次,当前执行第19次
+ echo 一共需要执行48次,当前执行第19次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ c=20
+ '[' 20 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ echo 一共需要执行48次,当前执行第20次
一共需要执行48次,当前执行第20次
+ echo 一共需要执行48次,当前执行第20次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ c=21
+ '[' 21 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:57 CST 2025
Fri Jan 24 09:16:57 CST 2025
+ echo 一共需要执行48次,当前执行第21次
一共需要执行48次,当前执行第21次
+ echo 一共需要执行48次,当前执行第21次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=22
+ '[' 22 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第22次
一共需要执行48次,当前执行第22次
+ echo 一共需要执行48次,当前执行第22次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=23
+ '[' 23 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第23次
一共需要执行48次,当前执行第23次
+ echo 一共需要执行48次,当前执行第23次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=24
+ '[' 24 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第24次
一共需要执行48次,当前执行第24次
+ echo 一共需要执行48次,当前执行第24次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=25
+ '[' 25 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第25次
一共需要执行48次,当前执行第25次
+ echo 一共需要执行48次,当前执行第25次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=26
+ '[' 26 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第26次
一共需要执行48次,当前执行第26次
+ echo 一共需要执行48次,当前执行第26次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=27
+ '[' 27 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第27次
一共需要执行48次,当前执行第27次
+ echo 一共需要执行48次,当前执行第27次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=28
+ '[' 28 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第28次
一共需要执行48次,当前执行第28次
+ echo 一共需要执行48次,当前执行第28次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ c=29
+ '[' 29 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:58 CST 2025
Fri Jan 24 09:16:58 CST 2025
+ echo 一共需要执行48次,当前执行第29次
一共需要执行48次,当前执行第29次
+ echo 一共需要执行48次,当前执行第29次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=30
+ '[' 30 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第30次
一共需要执行48次,当前执行第30次
+ echo 一共需要执行48次,当前执行第30次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=31
+ '[' 31 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第31次
一共需要执行48次,当前执行第31次
+ echo 一共需要执行48次,当前执行第31次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=32
+ '[' 32 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第32次
一共需要执行48次,当前执行第32次
+ echo 一共需要执行48次,当前执行第32次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=33
+ '[' 33 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第33次
一共需要执行48次,当前执行第33次
+ echo 一共需要执行48次,当前执行第33次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=34
+ '[' 34 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第34次
一共需要执行48次,当前执行第34次
+ echo 一共需要执行48次,当前执行第34次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=35
+ '[' 35 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第35次
一共需要执行48次,当前执行第35次
+ echo 一共需要执行48次,当前执行第35次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=36
+ '[' 36 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第36次
一共需要执行48次,当前执行第36次
+ echo 一共需要执行48次,当前执行第36次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=37
+ '[' 37 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第37次
一共需要执行48次,当前执行第37次
+ echo 一共需要执行48次,当前执行第37次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ c=38
+ '[' 38 -le 48 ']'
++ date
+ echo Fri Jan 24 09:16:59 CST 2025
Fri Jan 24 09:16:59 CST 2025
+ echo 一共需要执行48次,当前执行第38次
一共需要执行48次,当前执行第38次
+ echo 一共需要执行48次,当前执行第38次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=39
+ '[' 39 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第39次
一共需要执行48次,当前执行第39次
+ echo 一共需要执行48次,当前执行第39次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=40
+ '[' 40 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第40次
一共需要执行48次,当前执行第40次
+ echo 一共需要执行48次,当前执行第40次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=41
+ '[' 41 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第41次
一共需要执行48次,当前执行第41次
+ echo 一共需要执行48次,当前执行第41次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=42
+ '[' 42 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第42次
一共需要执行48次,当前执行第42次
+ echo 一共需要执行48次,当前执行第42次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=43
+ '[' 43 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第43次
一共需要执行48次,当前执行第43次
+ echo 一共需要执行48次,当前执行第43次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=44
+ '[' 44 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第44次
一共需要执行48次,当前执行第44次
+ echo 一共需要执行48次,当前执行第44次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=45
+ '[' 45 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第45次
一共需要执行48次,当前执行第45次
+ echo 一共需要执行48次,当前执行第45次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=46
+ '[' 46 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第46次
一共需要执行48次,当前执行第46次
+ echo 一共需要执行48次,当前执行第46次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ c=47
+ '[' 47 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:00 CST 2025
Fri Jan 24 09:17:00 CST 2025
+ echo 一共需要执行48次,当前执行第47次
一共需要执行48次,当前执行第47次
+ echo 一共需要执行48次,当前执行第47次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 10000'
++ date
+ echo Fri Jan 24 09:17:01 CST 2025
Fri Jan 24 09:17:01 CST 2025
+ c=48
+ '[' 48 -le 48 ']'
++ date
+ echo Fri Jan 24 09:17:01 CST 2025
Fri Jan 24 09:17:01 CST 2025
+ echo 一共需要执行48次,当前执行第48次
一共需要执行48次,当前执行第48次
+ echo 一共需要执行48次,当前执行第48次
++ psql -h 127.0.0.1 -U postgres -d t1db -c 'delete from test_table where id =any (select id from test_table where  created_at > '\''2024-12-30 23:59:59'\'' limit 10000 );'
+ returns='DELETE 1'
++ date
+ echo Fri Jan 24 09:17:01 CST 2025
Fri Jan 24 09:17:01 CST 2025
+ c=49
+ '[' 49 -le 48 ']'
[postgres@oradb ~]$ 

最后对表进行vacuum:

t1db=# vacuum full test_table;
VACUUM

相关文章:

postgresql根据主键ID字段分批删除表数据

生产环境针对大表的处理相对比较麻烦。 方案1、直接truncate,可能会遇到系统卡主的情况,因为truncate的过程中会对表进行加锁,会导致数据不能正常的写入 方案2、创建一个同结构的表结构,rename旧表,不停业务rename表担…...

10.business english-global market

eco-friendly case study: 案例学习 At the workshop工作坊, they agreed to emphasize eco-friendliness,adapt messageing, and boost digital marketing to stand out globally. Our study shows that more people want eco-friendly products in different places.Looks …...

C 语言实现计算一年中指定日期是第几天 题】

引言 在编程的世界里,处理日期和时间相关的问题是非常常见的。比如在日历应用、任务管理系统、数据分析等场景中,经常需要计算某个日期在一年中是第几天。本文将详细介绍如何使用 C 语言来实现这一功能,通过分析代码的结构、逻辑以及可能存在…...

深入理解三高架构:高可用性、高性能、高扩展性的最佳实践

引言 在现代互联网环境下,随着用户规模和业务需求的快速增长,系统架构的设计变得尤为重要。为了确保系统能够在高负载和复杂场景下稳定运行,"三高架构"(高可用性、高性能、高扩展性)成为技术架构设计中的核…...

【反悔堆】力扣1642. 可以到达的最远建筑

给你一个整数数组 heights ,表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。 你从建筑物 0 开始旅程,不断向后面的建筑物移动,期间可能会用到砖块或梯子。 当从建筑物 i 移动到建筑物 i1(下标 从 0 开始 )…...

关于使用Mybatis-plus的TableNameHandler动态表名处理器实现分表业务的详细介绍

引言 随着互联网应用的快速发展,数据量呈爆炸式增长。传统的单表设计在面对海量数据时显得力不从心,容易出现性能瓶颈、查询效率低下等问题。为了提高数据库的扩展性和响应速度,分表(Sharding)成为了一种常见的解决方案…...

docker 安装 redis 详解

在平常的开发工作中,我们经常会用到 redis,那么 docker 下应该如何安装 redis 呢?简单来说:第一步:拉取redis镜像;第二步:设置 redis.conf 配置文件;第三步:编写 docker-…...

56. 合并区间

【题目】&#xff1a;56. 合并区间 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {// 按照左端点排序sort(intervals.begin(), intervals.end(), [&](vector<int> lhs, vector<int> rhs)…...

BOM对象location与数组操作结合——查询串提取案例

BOM对象location与数组操作结合——查询串提取案例 前置知识 1. Location 对象 Location 对象是 JavaScript 提供的内置对象之一&#xff0c;它表示当前窗口或框架的 URL&#xff0c;并允许你通过它操作或获取 URL 的信息。可以通过 window.location 访问。 主要属性&#…...

Jetson Orin Nano Super之 onnxruntime 编译安装

Jetson Orin Nano Super之 onnxruntime 编译安装 1. 源由2. 步骤步骤一&#xff1a;安装3.26 cmake步骤二&#xff1a;下载代码步骤三&#xff1a;编译代码步骤四&#xff1a;找到安装包步骤五&#xff1a;安装whl包 3. 注意4. 参考资料 1. 源由 Build onnxruntime 1.19.2 fai…...

开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)

在 WSL 环境中配置&#xff1a;WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 node 官网&#xff1a;https://nodejs.org/zh-cn/download 点击【下载】&#xff0c;选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器 根据下面代码提示依次执行对应代码即可 基本概…...

[SWPUCTF 2022 新生赛]js_sign

题目 查看页面源代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><style>body {background-color: rgb(255, 255, 255);}</style> </head> <body><input id"flag" /><button>Check…...

农业信息化的基本框架

农业信息化的主要研究内容 基于作物模型的相关研究 作物生长模拟模型以及模型评价、模型的应用作物模型应用&#xff0c;包括&#xff1a;作物生态系统过程、生产管理措施、区域作物产量评估与气候变化对产量影响预测、基于作物模型的决策支持系统 数据挖掘、知识工程及应用、管…...

OpenAI的真正对手?DeepSeek-R1如何用强化学习重构LLM能力边界——DeepSeek-R1论文精读

2025年1月20日&#xff0c;DeepSeek-R1 发布&#xff0c;并同步开源模型权重。截至目前&#xff0c;DeepSeek 发布的 iOS 应用甚至超越了 ChatGPT 的官方应用&#xff0c;直接登顶 AppStore。 DeepSeek-R1 一经发布&#xff0c;各种资讯已经铺天盖地&#xff0c;那就让我们一起…...

Vue 3 中的父子组件传值:详细示例与解析

在 Vue 3 中&#xff0c;父子组件之间的数据传递是一个常见的需求。父组件可以通过 props 将数据传递给子组件&#xff0c;而子组件可以通过 defineProps 接收这些数据。本文将详细介绍父子组件传值的使用方法&#xff0c;并通过优化后的代码示例演示如何实现。 1. 父子组件传值…...

回顾2024,展望2025

项目 LMD performance phase2 今年修修补补&#xff0c;设计和做了很多item&#xff0c;有时候自己都数不清做了什么大大小小的item&#xff0c;但是for LMD performance phase2的go-live确实是最大也是最难的了&#xff0c;无论什么系统&#xff0c;只要用的人多了&#xff…...

【Python实现机器遗忘算法】复现2021年顶会 AAAI算法Amnesiac Unlearning

【Python实现机器遗忘算法】复现2021年顶会 AAAI算法Amnesiac Unlearning 1 算法原理 论文&#xff1a;Graves, L., Nagisetty, V., & Ganesh, V. (2021). Amnesiac machine learning. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 35, 115…...

Vue 3 30天精进之旅:Day 03 - Vue实例

引言 在前两天的学习中&#xff0c;我们成功搭建了Vue.js的开发环境&#xff0c;并创建了我们的第一个Vue项目。今天&#xff0c;我们将深入了解Vue的核心概念之一——Vue实例。通过学习Vue实例&#xff0c;你将理解Vue的基础架构&#xff0c;掌握数据绑定、模板语法和指令的使…...

【ArcGIS微课1000例】0141:提取多波段影像中的单个波段

文章目录 一、波段提取函数二、加载单波段导出问题描述:如下图所示,img格式的时序NDVI数据有24个波段。现在需要提取某一个波段,该怎样操作? 一、波段提取函数 首先加载多波段数据。点击【窗口】→【影像分析】。 选择需要处理的多波段影像,点击下方的【添加函数】。 在多…...

【第九天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-六种常见的图论算法(持续更新)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.Python中的常用的图论算法2. 图论算法3.详细的图论算法1&#xff09;深度优先搜索&#xff08;DFS&#xff09;2&#xf…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...