MySQLBeginnerMySQL's utf8 isn't real UTF-8. Here's why emoji break it, how to convert tables and connections to utf8mb4, and how to get past the 767-byte index limit.
#configuration#data-types#troubleshooting
SQLiteBeginnerWhat WAL mode changes compared with the default rollback journal, what it costs, when not to use it, and how to turn it on, check it and switch back.
#concurrency#configuration#transactions
MySQLIntermediateError 1205 on a simple UPDATE, from code that doesn't even use transactions. Find the blocking session, spot the missing index that's locking too much and stop it coming back.
#locking#transactions#troubleshooting
SQLiteIntermediateWhy Python raises "database is locked", how timeout, isolation_level and autocommit interact, and the working pattern for threads, worker processes, SQLAlchemy, Django and aiosqlite.
#concurrency#locking#orm
SQL ServerBeginnerA 200 GB .ldf for a 20 GB database? Shrinking only treats the symptom. log_reuse_wait_desc tells you the real cause, and here's how to fix each one.
#maintenance#transactions#troubleshooting
SQLiteAdvancedHow the -wal and -shm files, read marks and checkpoints work, why a WAL grows without bound, and how to set checkpointing, journal_size_limit and synchronous.
#concurrency#configuration#internals
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
SQLiteIntermediateAn ordered procedure for SQLITE_BUSY with a verification for each step, a script that reproduces the contention, and the matching settings for Python, Node and Go drivers.
#concurrency#locking#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
SQLiteIntermediateWhat SQLITE_BUSY means, where it is returned in rollback-journal and WAL mode, why a timeout sometimes does nothing, the extended codes, and how to find who holds the lock.
#concurrency#internals#locking
SQL ServerIntermediateSame proc, same code, suddenly 100× slower, and fast again when you run it in SSMS. Here's how parameter sniffing causes it, how to prove it and the fixes that actually hold.
#execution-plans#performance#troubleshooting
GeneralIntermediateAdjacency lists, materialized paths, nested sets and closure tables compared, and why a parent_id column plus a recursive CTE is the right default.
#data-modeling#schema-design