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

news2025/1/27 9:17:09

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

方案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 ]
do
        echo `date`
        echo '一共需要执行'${n}'次,当前执行第'${c}'次'
        echo '一共需要执行'${n}'次,当前执行第'${c}'次' > /home/postgres/deldata.txt
        returns=`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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2283369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《边界感知的分而治之方法:基于扩散模型的无监督阴影去除解决方案》学习笔记

paper:Boundary-Aware Divide and Conquer: A Diffusion-Based Solution for Unsupervised Shadow Removal 目录 摘要 1、介绍 2、相关工作 2.1 阴影去除 2.2 去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM) 3、方…

java后端之事务管理

Transactional注解:作用于业务层的方法、类、接口上,将当前方法交给spring进行事务管理,执行前开启事务,成功执行则提交事务,执行异常回滚事务 spring事务管理日志: 默认情况下,只有出现Runti…

数据结构——概念与时间空间复杂度

目录 前言 一相关概念 1什么是数据结构 2什么是算法 二算法效率 1如何衡量算法效率的好坏 2算法的复杂度 三时间复杂度 1时间复杂度表示 2计算时间复杂度 2.1题一 2.2题二 2.3题三 2.4题四 2.5题五 2.6题六 2.7题七 2.8题八 四空间复杂度 1题一 2题二 3…

牛客周赛 Round 78 A-C

A.时间表查询! 链接:https://ac.nowcoder.com/acm/contest/100671/A 来源:牛客网 题目描述 今天是2025年1月25日,今年的六场牛客寒假算法基础集训营中,前两场比赛已经依次于 20250121、20250123 举行;而…

HTML-新浪新闻-实现标题-样式1

用css进行样式控制 css引入方式: --行内样式:写在标签的style属性中(不推荐) --内嵌样式:写在style标签中(可以写在页面任何位置,但通常约定写在head标签中) --外联样式&#xf…

能说说MyBatis的工作原理吗?

大家好,我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助; 能说说MyBatis的工作原理吗? MyBatis 是一款流行的持久层框架,它通过简化数据库操作,帮助开发者更高效地与数据库进行交互。MyBatis…

MFC程序设计(四)窗口创建机制

钩子函数 钩子属于win32技术,具有优先勾取消息的权利:当一个消息产生时,钩子勾取消息进行处理,然后消息才送回程序 接下来以一个勾取窗口创建消息的钩子为例进行讲解 钩子类型有键盘钩子,鼠标钩子,WH_CBT…

【JavaEE进阶】Spring留言板实现

目录 🎍预期结果 🍀前端代码 🎄约定前后端交互接口 🚩需求分析 🚩接口定义 🌳实现服务器端代码 🚩lombok介绍 🚩代码实现 🌴运行测试 🎄前端代码实…

Unity开发一个单人FPS游戏的教程总结

这个系列的前几篇文章介绍了如何从头开始用Unity开发一个FPS游戏,感兴趣的朋友可以回顾一下。这个系列的文章如下: Unity开发一个FPS游戏_unity 模仿开发fps 游戏-CSDN博客 Unity开发一个FPS游戏之二_unity 模仿开发fps 游戏-CSDN博客 Unity开发一个F…

论文速读|Is Cosine-Similarity of Embeddings Really About Similarity?WWW24

论文地址: https://arxiv.org/abs/2403.05440 https://dl.acm.org/doi/abs/10.1145/3589335.3651526 bib引用: inproceedings{Steck_2024, series{WWW ’24},title{Is Cosine-Similarity of Embeddings Really About Similarity?},url{http://dx.doi.o…

71.在 Vue 3 中使用 OpenLayers 实现按住 Shift 拖拽、旋转和缩放效果

前言 在前端开发中,地图功能是一个常见的需求。OpenLayers 是一个强大的开源地图库,支持多种地图源和交互操作。本文将介绍如何在 Vue 3 中集成 OpenLayers,并实现按住 Shift 键拖拽、旋转和缩放地图的效果。 实现效果 按住 Shift 键&#…

PyQt6医疗多模态大语言模型(MLLM)实用系统框架构建初探(上.文章部分)

一、引言 1.1 研究背景与意义 在数字化时代,医疗行业正经历着深刻的变革,智能化技术的应用为其带来了前所未有的发展机遇。随着医疗数据的指数级增长,传统的医疗诊断和治疗方式逐渐难以满足现代医疗的需求。据统计,全球医疗数据量预计每年以 48% 的速度增长,到 2025 年将…

250125-package

1. 定义 包就是文件夹,作用是在大型项目中,避免不同人的编写的java文件出现同名进而导致报错;想象一个场景,在一个根目录中,每一个人都有自己的一个java文件夹,他可以将自己编写的文件放在该文件夹里&…

FastExcel的使用

前言 FastExcel 是一款基于 Java 的开源库,旨在提供快速、简洁且能解决大文件内存溢出问题的 Excel 处理工具。它兼容 EasyExcel,提供性能优化、bug 修复,并新增了如读取指定行数和将 Excel 转换为 PDF 的功能。 FastExcel 的主要功能 高性…

Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)

redis实现查询缓存的业务逻辑 service层实现 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 现查询redis内有没有数据String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的数…

python3+TensorFlow 2.x(三)手写数字识别

目录 代码实现 模型解析: 1、加载 MNIST 数据集: 2、数据预处理: 3、构建神经网络模型: 4、编译模型: 5、训练模型: 6、评估模型: 7、预测和可视化结果: 输出结果&#xff…

基础项目——扫雷(c++)

目录 前言一、环境配置二、基础框架三、关闭事件四、资源加载五、初始地图六、常量定义七、地图随机八、点击排雷九、格子类化十、 地图类化十一、 接口优化十二、 文件拆分十三、游戏重开 前言 各位小伙伴们,这期我们一起学习出贪吃蛇以外另一个基础的项目——扫雷…

[操作系统] 深入进程地址空间

程序地址空间回顾 在C语言学习的时,对程序的函数、变量、代码等数据的存储有一个大致的轮廓。在语言层面上存储的地方叫做程序地址空间,不同类型的数据有着不同的存储地址。 下图为程序地址空间的存储分布和和特性: 使用以下代码来验证一下…

OpenCV:图像处理中的低通滤波

目录 简述 什么是低通滤波? 各种滤波器简介与实现 方盒滤波 均值滤波 中值滤波 高斯滤波 双边滤波 各种滤波的对比与应用场景 相关阅读 OpenCV基础:图像变换-CSDN博客 OpenCV:图像滤波、卷积与卷积核-CSDN博客 简述 低通滤波是一…

32、【OS】【Nuttx】OSTest分析(1):stdio测试(二)

背景 接上篇wiki 31、【OS】【Nuttx】OSTest分析(1):stdio测试(一) 继续stdio测试的分析,上篇讲到标准IO端口初始化,单从测试内容来说其实很简单,没啥可分析的,但这几篇…