小编mil*_*oxe的帖子

DELETE在另一个表中没有匹配的记录

有两个表由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)

sql postgresql exists bigdata sql-delete

15
推荐指数
3
解决办法
4万
查看次数

为什么 jenkins 的 rsync 失败

当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)

必须做什么才能使其在詹金斯中也起作用?

ssh rsync centos selinux jenkins

5
推荐指数
1
解决办法
4053
查看次数

标签 统计

bigdata ×1

centos ×1

exists ×1

jenkins ×1

postgresql ×1

rsync ×1

selinux ×1

sql ×1

sql-delete ×1

ssh ×1