

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Aurora DSQL 的並行控制
<a name="working-with-concurrency-control"></a>

並行功能可讓多個工作階段同時存取和修改資料，而不會影響資料完整性和一致性。Aurora DSQL 提供 [ PostgreSQL 相容性](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility.html)，同時實作現代、無需鎖定的並行控制機制。其可透過快照隔離維持完整的 ACID 合規，以確保資料一致性和可靠性。

Aurora DSQL 的主要優點是無需鎖定架構，可消除常見的資料庫效能瓶頸。Aurora DSQL 可防止緩慢交易封鎖其他操作，並消除死結的風險。這種方法讓 Aurora DSQL 特別適合效能和可擴展性至關重要的高輸送量應用程式。

## 交易衝突
<a name="dsql-transaction-conflicts"></a>

Aurora DSQL 使用開放式並行控制 (OCC)，其運作方式與傳統的鎖定型系統不同。OCC 會評估遞交時的衝突，而不是使用鎖定。如果更新相同資料列時發生多個交易衝突，Aurora DSQL 會管理交易，如下所示：
+ Aurora DSQL 會處理遞交時間最早的交易。
+ 衝突的交易會收到 PostgreSQL 序列化錯誤，指出需要重試。

您可以設計應用程式，藉由實作重試邏輯處理衝突。理想設計模式為等冪，並盡可能讓交易重試成為優先求助方法。建議邏輯類似於，標準 PostgreSQL 鎖定逾時或死結情況下的中止和重試邏輯。不過，使用 OCC 時，您的應用程式必須更頻繁地執行此邏輯。

## 最佳化交易效能的指導方針
<a name="dsql-perf-guidelines"></a>

為了最佳化效能，請將單一索引鍵或小型索引鍵範圍上的激烈爭用性降至最低。若要達成此目標，請使用下列指導方針設計結構描述，將更新分散至叢集索引鍵範圍：
+ 為您的資料表選擇隨機主索引鍵。
+ 避免使用會提高單一索引鍵爭用性的模式。即使交易量增加，此方法也能確保最佳效能。