我想知道从 PostgreSQL 中删除大量行的最有效方法是什么,这个过程将是每天重复性任务的一部分,以将数据(插入 + 删除的增量)批量导入表中。可能有数千甚至数百万行要删除。
我有一个主键文件,每行一个。我想到的两个选项与下面的内容一致,但我对 PostgreSQL 的内部结构知之甚少,无法做出最好的明智决定。
DELETE
使用简单WHERE
的主键对文件中的每一行执行查询(或n
使用IN()
子句分批删除)COPY
命令将主键导入到临时表中,然后使用连接从主表中删除任何建议将不胜感激!
我一直在建立master->slave_a->slave_b
关系,但遇到了一些麻烦。我目前的master->slave_a
复制工作正常。
除了主机名设置之外,两个从站均具有完全相同server-id
的配置。当我尝试启动从站时,slave_b
会弹出以下错误:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
Run Code Online (Sandbox Code Playgroud)
我真的不明白,因为我拥有相距数英里的所有服务器 ID 1->2626->2629
(m->s->s)。
我将它们设置在我的/etc/mysql/conf.d/replication.cnf
文件中 - 它似乎被包含在内,但我不知道如何检查 mysql 正在获取哪个服务器 ID。
预先感谢:) 汤姆。