#database
17 bài viết về chủ đề này
Zero-downtime Migration — đổi schema khi app đang chạy
Đổi schema trên DB đang chạy production mà không downtime: expand-contract, ADD COLUMN an toàn, index CONCURRENTLY và backfill theo batch.
Transaction Isolation — 4 mức cô lập trong PostgreSQL, chọn sao cho đúng?
Hiểu 3 mức cô lập giao dịch trong PostgreSQL: Read Committed, Repeatable Read, Serializable — chọn đúng để khỏi ghi sai dữ liệu.
Cache-Aside: Vì sao bọc Redis ngoài DB vẫn có thể chậm
Cache-aside tưởng đơn giản mà dính Cache Stampede, thiếu TTL jitter, ghi nhầm thứ tự. 3 cái bẫy làm chậm hệ thống dù đã bọc Redis.
Connection Pool — Vì sao mở kết nối DB mỗi lần là chậm ngất?
Vì sao mở kết nối PostgreSQL mỗi lần request là chậm? Học cách tinh chỉnh connection pool trong Go: MaxOpenConns, MaxIdleConns, ConnMaxLifetime và các cái bẫy dễ dính.
PostgreSQL Partitioning — Chia bảng to, query nhanh như chớp
Học table partitioning trong PostgreSQL: chia bảng to đã tăng tốc query, dọn data cũ nhanh gọn, kèm code thực chiến.
Composite Index trong PostgreSQL — Vì sao index chồng index vẫn chậm?
Composite index giúp query tăng tốc gấp 10 lần, nhưng đặt sai thứ tự cột là vô dụng. Hiểu quy tắc Leftmost Prefix và covering index trong PostgreSQL.
EXPLAIN ANALYZE — Vũ khí săn query chậm trong database
Tối ưu SQL query bằng EXPLAIN ANALYZE: đọc execution plan, tìm sequential scan, thêm index đúng chỗ, biến query 3 giây thành 30ms.
Connection pooling — Tại sao app chậm dù database khỏe re?
Connection pooling tái sử dụng kết nối database, giảm latency và tránh lỗi 'too many connections'. Kinh nghiệm config pool đúng cách trong Go.
Đổi schema database không downtime — Expand & Contract thực chiến
Migrate schema Postgres an toàn trên production: expand & contract, backfill theo batch, chuyển code từng phase — không cần tắt service.
PostgreSQL Indexing thực chiến — B-tree, GIN và cái bẫy hay gặp
Index là con dao hai lưỡi: đúng thì query chạy như gió, sai thì database phình to. Học B-tree, GIN, partial index và cách tránh bẫy thực tế.
Redis Caching — Cache Aside, Read Through và chiến lược cho production
Tìm hiểu chiến lược cache với Redis: Cache Aside, Read Through, Write Through kèm code Go thực tế và kinh nghiệm production.
PostgreSQL EXPLAIN ANALYZE & Composite Index — Cặp bài trùm query chậm
Học cách đọc EXPLAIN ANALYZE và thiết kế composite index trong PostgreSQL — tăng tốc query từ 12 giây xuống còn 45ms.
PostgreSQL Index Types — B-tree, Hash, GiST, GIN và cách chọn
PostgreSQL có nhiều loại index hơn bạn nghĩ. Từ B-tree đến BRIN — học cách chọn đúng index cho từng loại query với EXPLAIN ANALYZE thực tế.
PgBouncer & Connection Pooling — vì sao app chậm dù DB vẫn xanh?
Connection pooling không chỉ là chuyện "mở nhiều kết nối". Học cách dùng PgBouncer, tune pool size đúng cách và tránh 5 sai lầm thường gặp.
Hash Indexes, SSTables, LSM-Trees & B-Trees — Cấu trúc dữ liệu đằng sau storage engine (DDIA)
Khám phá các cấu trúc dữ liệu nền tảng của database: hash indexes, SSTables, LSM-Trees và B-Trees qua lăng kính DDIA
Database Index — Câu chuyện về thứ giúp query của bạn nhanh hơn 100 lần
Database Index — cấu trúc dữ liệu thần kỳ giúp query tốc độ từ O(n) thành O(log n). Cùng mình tìm hiểu B-Tree, cách index hoạt động, và kinh nghiệm dùng index trong thực tế.
Graph Data Models — Cypher, SPARQL, Datalog: Ba cách tiếp cận dữ liệu đồ thị (DDIA)
Khám phá ba ngôn ngữ truy vấn đồ thị phổ biến — Cypher của Neo4j, SPARQL của RDF và Datalog — qua lăng kính của cuốn Designing Data-Intensive Applications