Sharding Cơ Sở Dữ Liệu Trong Go — TiDB, PostgreSQL & Bể Kết Nối (Connection Pools)

Điều kiện tiên quyết: Đây là Phần 4 của Khóa Học System Design. Lội lại Phần 3: Chiến Lược Caching để ngấm mớ luật lệ tầng cache trước khi mò xuống vũng lầy lưu trữ (storage). Answer-first: Đập vụn DB (Database sharding) là màn phân phát dữ liệu dạt sang hai bên sườn (horizontally) rải đều ra mấy cái mảnh vỡ độc lập (independent partitions/shards) bám theo một cái chìa khóa dẫn đường (shard key), cốt để xoa dịu cái màn dẫm đạp chửi bới nhau lúc ghi dữ liệu (reducing write contention) và mở đường cho dung lượng phình to tỷ lệ thuận đâm lủng trần nhà (linear storage growth). Chấm mút chọn sai cái shard key là đẻ ra ngay mấy cái ổ kiến lửa (hot spots) lòi le, hậu quả còn bết bát thảm khốc hơn cả việc chẳng thèm sharding. ...

18 tháng 6, 2026 · 18 phút · Tanh

Chương 9: Database Sharding & Read/Write Splitting Dành Cho Các Bảng Dữ Liệu Hàng Tỷ Bản Ghi

← Bài trước | Series hub Chương 9: Mở Rộng Điểm Thắt Cổ Chai Database Cuối Cùng Đến ngưỡng ứng dụng của bạn gom được hàng chục triệu người dùng, Database sẽ tự động hóa thân thành điểm thắt cổ chai tối thượng. CPU giãy giụa chạm kịch trần 100%, RAM cạn kiệt, và mớ queries chạy mất tính bằng giây thay vì phần nghìn giây. Đây chính là cột mốc bắt buộc bạn phải tung ra các quân bài chiến lược phân tán database. ...

9 tháng 6, 2026 · 6 phút · Tuan Anh

Chương 5: Tối Ưu Connection Pools Của Database Trong Golang Để Ngăn Chặn Thắt Cổ Chai

← Bài trước | Series hub | Tiếp theo → Chương 5: Mở Khóa Hiệu Suất Database Thông Qua Connection Pooling Nếu hệ thống Golang của bạn nghiền ngẫm business logic (logic nghiệp vụ) nhanh như chớp nhưng lại sặc nước nghẹn ứ ngay ở tầng Database, thì 90% nguyên nhân bắt nguồn từ một chiếc cấu hình *sql.DB lệch pha. 1. Thấu Hiểu *sql.DB Answer-first: Trong thế giới Golang, hàm sql.Open() KHÔNG HỀ khởi tạo một đường truyền kết nối chọc thẳng xuống database. Nó đóng vai trò khởi chạy một cỗ máy quản đốc Connection Pool (hồ chứa kết nối) an toàn luồng (thread-safe). Điều kiện bắt buộc là bạn chỉ được phép khởi tạo cái biến db này đúng một lần duy nhất trong suốt chu kỳ khởi động app. ...

9 tháng 6, 2026 · 5 phút · Tuan Anh