有两个表由id链接:
item_tbl (id)
link_tbl (item_id)
Run Code Online (Sandbox Code Playgroud)
有些记录中item_tbl没有匹配的行link_tbl.一个可以计算其金额的选择将是:
SELECT COUNT(*)
FROM link_tbl lnk LEFT JOIN item_tbl itm ON lnk.item_id=itm.id
WHERE itm.id IS NULL
Run Code Online (Sandbox Code Playgroud)
我想删除那些孤儿记录(那些在其他表中没有匹配的记录),link_tbl但我能想到的唯一方法是:
DELETE FROM link_tbl lnk
WHERE lnk.item_id NOT IN (SELECT itm.id FROM item_tbl itm)
Run Code Online (Sandbox Code Playgroud)
在2003年的16,844,347个孤儿记录中有
3,033,811个记录的link_tbl
262,086,253条记录.
服务器有4GB RAM和8核CPU.item_tbl
link_tbl
EXPLAIN DELETE FROM link_tbl lnk
WHERE lnk.item_id NOT IN (SELECT itm.id FROM item_tbl itm)
Run Code Online (Sandbox Code Playgroud)
返回:
Delete on link lnk (cost=0.00..11395249378057.98 rows=131045918 width=6)
-> Seq Scan …Run Code Online (Sandbox Code Playgroud) 当rsync与jenkins一起使用作为CentOS 6.4上的执行shell命令时,它失败:
[workspace] $ /bin/sh -xe /tmp/hudson3424899639384884888.sh
+ rsync -av /var/lib/jenkins/jobs/myjob/workspace/target/classes/ myuser@myserver.com:/home/myuser/test
rsync: Failed to exec ssh: Permission denied (13)
rsync error: error in IPC code (code 14) at pipe.c(84) [sender=3.0.6]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in IPC code (code 14) at io.c(600) [sender=3.0.6]
Run Code Online (Sandbox Code Playgroud)
但是,它可以从命令行运行:
su jenkins
rsync -av /var/lib/jenkins/jobs/myjob/workspace/target/classes/ myuser@myserver.com:/home/myuser/test
sending incremental file list
sent 17875 bytes received 83 bytes 3990.67 bytes/sec
total size is 1981027 speedup is 110.31
Run Code Online (Sandbox Code Playgroud)
必须做什么才能使其在詹金斯中也起作用?
bigdata ×1
centos ×1
exists ×1
jenkins ×1
postgresql ×1
rsync ×1
selinux ×1
sql ×1
sql-delete ×1
ssh ×1