我需要为表的每条记录存储一个位数组,支持以下操作:
测试是否设置了位,并设置了位(使用 SQL)
使用 ADO 2.8(不是 ADO.NET)查询和设置值
索引(为了从“覆盖索引”功能中受益)
要存储在此数组中的最大位数是固定的,但可能会超过 32。也就是说,一个简单的int列并不总是有效。
从我目前所见,我的选择是:
第一个选项可行,但需要对访问数据的代码进行大量重构。第二个选项只是暂时的缓解,从我目前的搜索来看,我不太确定 ADO 是否与bigint一起工作得那么好。我没有使用binary 的经验,我不知道任何其他选项。
根据要求,您会选择哪种数据类型?
有没有办法备份包含大量表的 PostgreSQL 数据库?
尝试使用pg_dump大约 28000 个表的数据库导致以下错误消息:
pg_dump: WARNING: out of shared memory
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: out of shared memory
HINT: You might need to increase max_locks_per_transaction.
pg_dump: The command was: LOCK TABLE public.link10292 IN ACCESS SHARE MODE
pg_dump: *** aborted because of error
Run Code Online (Sandbox Code Playgroud)
增加到max_locks_per_transaction256 而不是 64 会导致无法启动服务器。
还有什么我可以尝试的吗?(PostgreSQL 9.0,Mac OS X。)