在服务器S1上有数据库A.我对它有只读访问权限,只能执行SELECT语句。
在服务器S2上有数据库B,具有完全访问权限。
在数据库A中有一个表,即有大约100.000个用户的用户,我想为数据库B中的每个用户保存一些附加信息。
如果我想让在A.users中的所有用户在B中没有其他信息,那么最好的方法是什么?
这是不可能的,因为我们有不同的数据库服务器:
SELECT id FROM A.users WHERE id NOT IN (SELECT id FROM B.info)
我可以使用PHP或任何语言生成语句的CSV列表
SELECT id FROM B.info
while ($data = mysql_fetch_object($result)) $ids[] = $data->id;
"SELECT id FROM A.users WHERE id NOT IN (" . implode(',', $ids) . ")"
这应该可行,但我想如果B.info中存在很多行会有问题。也许有一些最大查询长度?也许是一些性能问题?
还有其他方法可以解决这个问题吗?