139得票1回答
Postgres 更新 ... 限制 1 条记录

我有一个包含服务器集群详细信息的Postgres数据库,例如服务器状态('active','standby'等)。任何时候活动服务器可能需要故障转移至备用服务器,而且我不关心具体使用哪个备用服务器。 我想要一个数据库查询来更改一个备用服务器的状态 - 只是一个 - 并返回要使用的服务器IP。...

40得票5回答
PostgreSQL中并发DELETE / INSERT的锁定问题

这很简单,但是我对PG(v9.0)的作用感到困惑。 我们从一个简单的表开始: CREATE TABLE test (id INT PRIMARY KEY); 和几行: INSERT INTO TEST VALUES (1); INSERT INTO TEST VALUES (2); ...

33得票4回答
你如何在数据库中测试竞态条件?

我试图编写数据库代码,以确保它不会受到竞态条件的影响,以确保我已经锁定了正确的行或表。但我经常在想:我的代码是否正确?是否可能强制出现任何现有的竞态条件?我希望确保如果它们在生产环境中发生,我的应用程序将采取正确的措施。 我通常知道哪个并发查询可能会引起问题,但我不知道如何强制它们同时运行,...

30得票6回答
我能相信按顺序读取 SQL Server 的 Identity 值吗?

TL;DR: 下面的问题可以简化为:在插入一行时,在生成新的Identity值和在聚集索引中对应行键进行锁定之间,是否存在一个时间窗口,外部观察者可以看到由并发事务插入的更新的Identity值?(在SQL Server中) 详细版本: 我有一个SQL Server表,其中有一个名为Che...

27得票3回答
在使用SELECT-UPDATE模式时管理并发性

假设你有以下代码(请忽略它的糟糕程度): BEGIN TRAN; DECLARE @id int SELECT @id = id + 1 FROM TableA; UPDATE TableA SET id = @id; --TableA must have only one row, app...

24得票3回答
并发事务在插入时会导致唯一约束上的竞态条件

我有一个Web服务(HTTP API),允许用户通过RESTful方式创建资源。在身份验证和验证后,我将数据传递给Postgres函数,并允许它检查授权并在数据库中创建记录。 今天我发现了一个bug,当两个HTTP请求在同一秒内发出时,会导致该函数被调用两次,传入相同的数据。函数内部有一个子...

24得票2回答
在使用中的MySQL数据库中,我可以为表创建索引吗?

如果我可以的话,有什么理由(性能/稳定性)我不应该这样做吗?

22得票2回答
在PostgreSQL中检测CREATE INDEX CONCURRENTLY何时完成

如果我在PostgreSQL中并发地创建一个索引,我如何知道它何时完成? 我正在尝试重建索引以解决索引膨胀问题,并且需要在新索引完成之前保留旧索引一段时间,所以我需要知道何时完成。 这是PostgreSQL 9.2/3左右的版本。

21得票1回答
PostgreSQL - 如果我同时运行多个查询,什么情况下会加快速度?什么情况下会减慢速度?

我以一个非DBA的身份谦卑地向大家提问,我相信我的问题充满了概念上的缺陷和“这取决于”的雷区。我也相信,所有选择回答的人都会希望我能提供更多具体细节。 话虽如此,我对以下一般情况很好奇: - 假设我有两个非平凡的查询。 - 查询1平均需要2分钟完成。 - 查询2平均需要5分钟完成。 如果...

21得票2回答
Postgres中针对UPDATE / INSERT组合的锁定

我有两个表。一个是日志表,另一个包含只能使用一次的优惠码。 用户需要能够兑换优惠券,这将向日志表插入一行,并将优惠券标记为已使用(通过将“used”列更新为“true”)。 显然,这里存在明显的竞争条件和安全问题。 在以前的MySQL世界中,我做过类似的事情。在那个世界里,我会全局锁定两...