Tag: postgresql Basic
This content is a draft and will not be included in production builds.
58 articles tagged postgresql:
- ACID in PostgreSQL: what is guaranteed and what is not?
- Advisory locks: locking a business key when there is no row to lock
- Anomalies when many transactions read and write together, and how to fix each one
- Common database and transaction mistakes (PostgreSQL, ORMs)
- Common mistakes in Node.js, NestJS and PostgreSQL backend code
- Common mistakes when logging, debugging, responding to incidents and writing postmortems
- Common mistakes with numbers, dates and strings in Node.js + PostgreSQL
- Common naming mistakes: from code and database to APIs and events
- Common performance mistakes and resource leaks in Node.js
- Composite indexes in PostgreSQL: choosing column order
- Connection pooling and PgBouncer: 400 clients, PostgreSQL accepts 100
- CQRS and event sourcing: add read models first, store events only when history is the product
- Cross-service transactions in NestJS: keeping one connection across services with CLS
- Deadlocks in PostgreSQL: causes, reading the log, fixes
- Designing a payment system: the timeout that charges twice, and the ledger that proves it
- Easily misused data types: why a 23:30 order lands on the next day and totals are off by 1 VND
- Expand–contract: changing a schema while several app versions run at once
- GIN, GiST and BRIN in PostgreSQL: which index to choose?
- How a B-tree index works in PostgreSQL
- How PostgreSQL stores data: pages, heap, tuples, and TOAST
- Hypothesis-driven debugging with the Node.js and PostgreSQL toolkit
- Idempotency-Key: retrying POST /orders without creating a second order
- Idempotent consumer: receiving duplicate messages without writing twice (Kafka, RabbitMQ)
- Integration tests with Testcontainers: a real Postgres, Redis and Kafka per run, without slowing CI to a crawl
- Isolation levels in PostgreSQL: which level for your transaction?
- Lock queue: why one waiting ALTER TABLE makes every SELECT queue up
- Lock timeouts and monitoring: finding the blocking session and capping wait time
- Matching: pick a lock or isolation level for each situation
- Matching: pick an index type for each query
- MVCC in PostgreSQL: xmin, xmax and snapshots
- Naming in backend systems: code, database, API and events
- Naming in PostgreSQL: snake_case, 63 bytes and constraint names
- Nested loop, hash join and merge join in PostgreSQL
- NOWAIT and SKIP LOCKED: distributing jobs across workers
- Optimistic or pessimistic locking: choose by conflict rate and think time
- Ordering: create an index online on a large table
- Ordering: rename a column with zero downtime
- Pagination in PostgreSQL: OFFSET and keyset
- Partial, expression, and covering indexes in PostgreSQL
- Partitioning in PostgreSQL: the real benefit is operational
- Reading EXPLAIN and EXPLAIN ANALYZE in PostgreSQL
- Replication and read replicas: why you still see old data right after writing
- Row-level locks in PostgreSQL: FOR UPDATE, FOR NO KEY UPDATE, and preventing double booking
- Row-level security for multi-tenancy: one shared schema, no cross-tenant reads
- Scenario: a 3 a.m. incident, checkout p99 up to 4 seconds
- Scenario: a customer sees another company's invoices
- Scenario: a flash sale oversells inventory
- Scenario: a migration locks the orders table
- Scenario: a query slows down as the table reaches 30 million rows
- Secure coding for backends: the vulnerabilities live in the code you write
- Statistics, ANALYZE, and how PostgreSQL estimates queries
- Table-level locks in PostgreSQL: which DDL blocks even SELECT on a live table
- Transaction ID wraparound: why must PostgreSQL freeze old tuples?
- Upsert with ON CONFLICT: "insert if missing, update if present" without error 23505
- UUID or bigint as the primary key: the cost on B-trees, WAL, and foreign keys
- VACUUM, autovacuum, and bloat: why is the table still large after DELETE?
- Why is PostgreSQL not using my index?
- Writing transactions in code: keeping data correct when many requests run at once