A working engineer's guide to database indexes: when each index type (B-tree, hash, GiST, SP-GiST, BRIN, GIN, columnstore) is the right answer, what an index actually costs you on every write, and how the query planner decides whether to use one at all.
Database Engineering
-
Database Indexes Explained -
Distributed SQL: CockroachDB, TiDB, and YugabyteDB NewSQL that survives a node dying while still speaking SQL. How Raft-replicated ranges deliver horizontal scale with strong consistency, the Google Spanner lineage the whole category descends from, multi-region survival goals and the latency tax they impose, online schema changes that don't lock the table, an honest head-to-head of CockroachDB, TiDB, and YugabyteDB — and the unglamorous truth that boring single-node Postgres still wins for most applications.
-
Graph Databases with Neo4j The property-graph model explained from first principles: nodes, relationships, and properties; Cypher queries for real traversal problems; why index-free adjacency beats recursive SQL CTEs for deep graph walks; fraud detection, recommendations, and knowledge graphs as concrete production use cases; Neo4j clustering and causal consistency; and an honest accounting of when adding a graph database is the wrong call.
-
MongoDB Done Right The document database past the hype: the embed-versus-reference decision that makes or breaks a schema, denormalization that does not rot, when MongoDB genuinely beats Postgres JSONB and when it does not, the aggregation pipeline, indexing and the working-set rule, replica sets and sharding, the read/write-concern consistency knobs, and the operational footguns — unbounded arrays and the 16 MB BSON limit — that sink naive designs.
-
SQL Server Quick Start and T-SQL Cheat Sheet Getting productive on Microsoft SQL Server fast when you already know PostgreSQL or MySQL — connecting with sqlcmd and the modern clients, running the engine in a container, the T-SQL dialect essentials (TOP, OFFSET/FETCH, MERGE, CTEs, window functions), indexes and execution plans, stored procedures, backup and restore, and the dialect gotchas that trip up newcomers.
-
ClickHouse for Analytics Workloads ClickHouse columnar storage, the MergeTree engine family, primary key vs sorting key, materialized views for pre-aggregation, query profiling with EXPLAIN, replication with ClickHouse Keeper, distributed tables for sharding, and when to choose ClickHouse over PostgreSQL.
-
PgBouncer and PostgreSQL Connection Pooling Why PostgreSQL's process-per-connection model requires a connection pooler, PgBouncer session vs transaction vs statement pooling modes and their tradeoffs, pgbouncer.ini configuration, monitoring with SHOW commands, and a comparison of PgBouncer, Pgpool-II, and Supavisor.
-
PostgreSQL Internals and Tuning How PostgreSQL works under the hood: MVCC for non-blocking reads, heap and TOAST storage, WAL for durability and replication, VACUUM and autovacuum mechanics, EXPLAIN ANALYZE output explained, index types, pg_stat_statements for query analysis, and key postgresql.conf tuning parameters.
-
PostgreSQL Replication and High Availability PostgreSQL streaming replication setup, synchronous vs asynchronous tradeoffs, logical replication for selective sync and zero-downtime upgrades, pg_basebackup for standby creation, Patroni with etcd for automatic failover, pg_rewind for rejoining a former primary, and monitoring replication lag.
-
Redis Architecture and Persistence Redis data structures and their use cases, RDB vs AOF vs hybrid persistence, Redis Sentinel for high availability, Redis Cluster for horizontal scaling with hash slots, eviction policies, diagnostic commands, and an honest look at when Redis is the right tool.