假设有足够的磁盘 space,我可以在没有停机风险的情况下在实时生产数据库中创建索引吗?
Assuming there is enough disc space, can I create an index in a live production database without risk of downtime?
在 PostgreSQL 数据库中,假设有足够的磁盘 space,我可以在没有停机风险的情况下在实时生产数据库中创建索引吗?换句话说,创建索引时是否存在锁定或可能的崩溃或数据丢失或其他问题。
更准确地说,它是 1Gb table:
中 JSONB sub-属性 的索引
create index on foo((bar->>'region'));
我目前正在犹豫 运行 这个创建索引(它在我的机器上使用数据库示例没有问题)。
CREATE INDEX
将在 CREATE INDEX 语句期间阻止对 table 的写入,但 CREATE INDEX CONCURRENTLY
不会。 CONCURRENTLY
修饰符确实需要更多工作,但在这种情况下,它应该可以忽略不计(在初始扫描读取后不久重新读取 1GB)。
读取不受两种形式的 CREATE INDEX 的影响,除了在操作系统级别竞争 I/O。
在 PostgreSQL 数据库中,假设有足够的磁盘 space,我可以在没有停机风险的情况下在实时生产数据库中创建索引吗?换句话说,创建索引时是否存在锁定或可能的崩溃或数据丢失或其他问题。
更准确地说,它是 1Gb table:
中 JSONB sub-属性 的索引create index on foo((bar->>'region'));
我目前正在犹豫 运行 这个创建索引(它在我的机器上使用数据库示例没有问题)。
CREATE INDEX
将在 CREATE INDEX 语句期间阻止对 table 的写入,但 CREATE INDEX CONCURRENTLY
不会。 CONCURRENTLY
修饰符确实需要更多工作,但在这种情况下,它应该可以忽略不计(在初始扫描读取后不久重新读取 1GB)。
读取不受两种形式的 CREATE INDEX 的影响,除了在操作系统级别竞争 I/O。