Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
PostgreSQL
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Multiversion concurrency control (MVCC) == PostgreSQL manages [[concurrency control|concurrency]] through [[multiversion concurrency control]] (MVCC), which gives each transaction a "snapshot" of the database, allowing changes to be made without affecting other transactions. This largely eliminates the need for read locks, and ensures the database maintains [[ACID (computer science)|ACID]] principles. PostgreSQL offers four levels of [[isolation (database systems)|transaction isolation]]: Read Uncommitted, Read Committed, Repeatable Read and Serializable. Because PostgreSQL is immune to dirty reads, requesting a Read Uncommitted transaction isolation level provides read committed instead. PostgreSQL supports full [[serializability]] via the serializable [[snapshot isolation]] (SSI) method.<ref name="ports" /> The PostgreSQL MVCC implementation is prone to performance issues that require tuning when under a heavy write load which updates existing rows.<ref>{{Cite web|url=https://ottertune.com/blog/the-part-of-postgresql-we-hate-the-most|title=The part of PostgreSQL we hate the most |website= OtterTune|type= blog | author1= Bohan Zhang |author2= Andy Pavlo| date=2023}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)