Lập trình Go 22/09/2026 11 phút

Worker pool và backpressure trong Go: vì sao 1 goroutine mỗi job là công thức sập

Số worker cố định + hàng đợi giới hạn giúp hệ thống chậm lại khi quá tải thay vì sập. Đo thật: pool giữ goroutine ở 6 trong khi cách ngây thơ 1-goroutine-mỗi-job bùng lên 102, và hàng đợi đầy chặn producer 89 lần (backpressure). Cơ chế và vì sao quan trọng. Go 1.23.

Cơ sở dữ liệu 22/09/2026 6 phút

Cache hit ratio đọc cho đúng: vì sao 100% vẫn có thể là truy vấn tệ

Cache hit ratio 99% được coi là chỉ số sức khỏe, nhưng nó đánh lừa theo ba cách. Đo thật: một truy vấn self-join có hit ratio 100% (không chạm đĩa) vẫn mất 1,4 giây vì nhân 25 triệu dòng. Ratio đo dữ liệu đến từ đâu, không đo truy vấn tốt hay xấu — công cụ đúng là EXPLAIN BUFFERS. PostgreSQL 16.

Lập trình Go 22/09/2026 10 phút

unsafe.Pointer trong Go: bốn mẫu chuyển đổi hợp lệ, và quy tắc uintptr sống còn

unsafe.Pointer cho phép gạt kiểu an toàn sang bên, nhưng chỉ vài mẫu chuyển đổi là hợp lệ và được runtime bảo đảm. Đo thật trong Go 1.23: các mẫu đúng chạy sạch, go vet bắt mẫu sai lưu uintptr vào biến, và chuyển []byte sang string không sao chép nhanh gấp 136 lần.

Lập trình Go 22/09/2026 9 phút

Compiler directive //go: trong Go: từ embed tiện lợi đến linkname nguy hiểm

Chú thích //go: là công tắc điều khiển compiler và linker. Đo thật: go:embed nhúng file vào binary lúc build, go:linkname gọi được hàm runtime riêng (runtime.nanotime), và một khoảng trắng thừa sau // khiến directive bị bỏ qua âm thầm. Cái nào an toàn, cái nào phá an toàn bộ nhớ. Go 1.23.

Lập trình Go 22/09/2026 10 phút

Tổng kết Go chuyên sâu: bản đồ 132 bài và hai con số gói lại cả sê-ri

Kết thúc 132 bài đo thật về runtime, hiệu năng và hệ thống Go. Bài này vẽ bản đồ toàn sê-ri theo tám chủ đề, và đo một benchmark tổng hợp gói lại hai bài học lớn nhất: stack nhanh hơn heap 14,5 lần với 0 cấp phát, và thêm core giúp thật nhưng dưới tuyến tính (10 core chỉ nhanh 4,6x). Cùng cách tư duy đọng lại sau tất cả.

Cơ sở dữ liệu 22/09/2026 5 phút

Index trên bảng phân vùng PostgreSQL: lan xuống, unique phải chứa khóa, và dựng không khóa

Index tạo trên bảng cha phân vùng tự lan xuống mọi partition và partition mới cũng thừa kế. Nhưng unique/primary key BẮT BUỘC chứa khóa phân vùng. Đo thật: unique thiếu khóa phân vùng báo lỗi, duplicate bị chặn ở mức partition, và cách dựng index không khóa dài bằng ON ONLY + CONCURRENTLY + ATTACH. PostgreSQL 16.