PostgreSQLBeginnerAfter an import or migration, every insert collides with an existing id because the sequence is behind. Reset one or all sequences, and prevent it with identity columns.
#data-types#migrations#troubleshooting
PostgreSQLBeginnerA founder's guide to choosing PostgreSQL or MySQL: team experience, managed hosting, scaling paths, extensions, licensing, switching cost, and a clear "pick PostgreSQL unless" rule.
#db-administration#scalability#schema-design
PostgreSQLBeginnertimestamptz doesn't store a time zone, and timestamp silently drops the offset you pass in. What each type really stores, where timestamp causes bugs and the one case where it's right.
#data-types#schema-design
PostgreSQLIntermediateSide-by-side SQL for the differences web developers hit daily: quoting, case sensitivity, identity columns, RETURNING, upserts, booleans, JSON, GROUP BY, full-text search, migrations and time zones.
#data-types#migrations#orm
PostgreSQLIntermediateA session doing nothing can stop VACUUM from cleaning every table and stall your next migration. Find them, kill them safely and prevent them with the right timeouts.
#maintenance#mvcc#transactions
PostgreSQLBeginnerHow to choose between PostgreSQL, MySQL, SQLite and MongoDB for a web app, where Redis and a search engine fit, a decision table by app type, and when the PostgreSQL default is wrong.
#data-modeling#scalability#schema-design
PostgreSQLIntermediateThe old UUID performance problem came from UUIDv4's randomness, not UUIDs themselves. How UUIDv7 changes the trade-off, what the extra 8 bytes still cost and when to pick each.
#data-types#indexing#schema-design
PostgreSQLAdvancedExplains by mechanism where InnoDB or PostgreSQL does less work for lookups, updates, joins, connections and replication, then shows how to benchmark your own workload with pgbench and sysbench.
#internals#mvcc#performance
PostgreSQLIntermediateA reference comparison of PostgreSQL and MySQL: storage and MVCC, isolation defaults, DDL, data types, indexes, replication, licensing and tooling, with a decision summary.
#indexing#internals#replication
PostgreSQLIntermediateRaising max_connections to 1000 usually makes things worse. Learn why Postgres connections are expensive, where they're leaking and how PgBouncer fixes it for good.
#configuration#performance#troubleshooting
PostgreSQLBeginnerThe index exists, but the plan still shows a scan. Nine common reasons the optimizer can't (or shouldn't) use your index, and how to fix each one.
#execution-plans#indexing#performance