Back to Yugabyte Db

Transactions

docs/content/v2.25/explore/transactions/_index.md

2026.1.0.0-b252.7 KB
Original Source

YugabyteDB is a transactional database that supports distributed transactions. A transaction is a sequence of operations performed as a single logical unit of work. YugabyteDB provides ACID guarantees for all transactions.

The following table summarizes the support for transactions across the YSQL and YCQL APIs.

PropertyYSQLYCQLComments
Distributed transactionsYesYesPerform multi-row or multi-table transactions.
An application can connect to any node of the cluster.
Isolation levelsSerializable
Snapshot
Read CommittedSnapshotRepeatable read isolation level in PostgreSQL maps to snapshot isolation in YSQL.
AUTOCOMMIT = false settingYesNoThe transaction must be expressed as one statement in YCQL.
<!-- | [Explicit locking] | Yes | No | Ability to perform row- and table-level locking | | [DDL statements] | Transaction per DDL statement | Transaction per DDL statement | Each DDL statement is a transaction in both YSQL and YCQL, even if other DDL statements are in a transaction block in YSQL. | | [Non-transactional tables] | No | Yes | Ability to disable multi-row transactions on a per-table basis. Useful for some features such as automatic data expiry. | -->

{{<index/block>}}

{{<index/item title="Distributed transactions" body="Distributed transactions in YugabyteDB." href="distributed-transactions-ysql/" icon="fa-thin fa-sitemap">}}

{{<index/item title="Isolation levels" body="Serializable, snapshot, and read committed isolation in YugabyteDB." href="isolation-levels/" icon="fa-thin fa-bars-staggered">}}

{{<index/item title="Explicit locking" body="Explicit row-level locking in YSQL." href="explicit-locking/" icon="fa-thin fa-lock">}}

{{</index/block>}}

<!-- ADD THIS ONCE READY: <div class="col-12 col-md-6 col-lg-12 col-xl-6"> <a class="section-link icon-offset" href="ddl-operations/"> <div class="head"> <div class="icon"><i class="fa-solid fa-table"></i></div> <div class="title">DDL Operations</div> </div> <div class="body"> How YugabyteDB handles DDL operations in transaction blocks. </div> </a> </div> <div class="col-12 col-md-6 col-lg-12 col-xl-6"> <a class="section-link icon-offset" href="non-transactional-tables/"> <div class="head"> <div class="icon"><i class="fa-solid fa-strikethrough"></i></div> <div class="title">Non-Transactional Tables</div> </div> <div class="body"> Disable multi-row transactions on a per-table basis in YCQL. </div> </a> </div> -->