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

Window function trong PostgreSQL: tính tổng hợp mà vẫn giữ từng dòng, và tối ưu chúng

Window function tính tổng hợp theo nhóm nhưng giữ nguyên mỗi dòng — thay thế self-join và subquery tương quan. Đo thật: bước tốn nhất là Sort theo PARTITION BY, một index khớp xóa hẳn nó, và gom các hàm cùng window để sắp một lần. PostgreSQL 16.

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

Service discovery trong Go: đăng ký, health check TTL và round-robin

Địa chỉ cứng không co giãn: dịch vụ scale, chết, đổi IP thì client không biết. Service discovery giải bằng sổ đăng ký động — dịch vụ tự đăng ký và heartbeat, client tra để tìm bản sống. Bài dựng registry trong Go và đo thật: round-robin phân đều 3/3/3, health check loại bản chết, traffic tự né.

Công cụ 22/09/2026 5 phút

git submodule: repo lồng trong repo — vì sao nó ghim commit và hay gây rối

Submodule nhúng một kho Git vào kho khác nhưng không chép file — nó chỉ ghi một con trỏ tới đúng một commit của kho con. Điều này khiến build tái lập được nhưng cũng gây rối nếu không hiểu. Bài này đo thật: submodule là gitlink mode 160000, lib lên v2 mà app vẫn ghim v1, và cách cập nhật đúng — cùng ba cái bẫy kinh điển.