
PostgreSQL 19 introduces SQL/PGQ support for property graphs, and this post dives into heterogeneous graphs with multiple vertex and edge types. Using a social+work dataset (persons, companies, knows, works_at), it demonstrates how to define a multi-label property graph and write GRAPH_TABLE queries spanning different node types. Key topics include: traversing mixed-type paths (person→person→company), a workaround for PostgreSQL 19's lack of comma-separated MATCH patterns (join two GRAPH_TABLE results instead), the pitfall of anonymous edge patterns in multi-label graphs (they match all edge types via an Append plan), and the current limitation around quantified path hops ({1,3} syntax not yet supported).
Nguồn: https://www.cybertec-postgresql.com/en/heterogeneous-graphs-in-sql-pgq-on-postgresql-19. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Vibe.co, nền tảng quảng cáo TV kết nối bị Walmart mua lại, đã chuyển từ Postgres sang ClickHouse Cloud để xử lý hàng tỷ lượt hiển thị quảng cáo. Giải pháp này loại bỏ lớp tiền tổng hợp kém ổn định, mở rộng dữ liệu lưu trữ từ ~100 GB lên hơn 2 TB mà không cần thay đổi kiến trúc, đồng thời cung cấp 90%+ báo cáo chiến dịch cho khách hàng trong dưới 100ms.
Những kỹ thuật tối ưu hóa quy mô lớn của Vibe.co cho ClickHouse Cloud sẽ giúp bạn hiểu cách xử lý dữ liệu thời gian thực hiệu quả, giảm chi phí và tăng tốc độ báo cáo khi làm việc với lượng dữ liệu khổng lồ.
Di chuyển từ kiến trúc monolith sang microservices cần áp dụng các pattern cụ thể thay vì …
Bài viết hướng dẫn triển khai CQRS trong Node.js/TypeScript theo cách đơn giản, không cần …

postgres-lsp là một triển khai mới theo giao thức Language Server (LSP) dành cho SQL và PL/pgSQL của PostgreSQL, sử dụng tree-sitter-postgres. Nó cung cấp các tính năng IDE như chẩn đoán lỗi, gợi ý ngữ nghĩa, điều hướng định nghĩa, định vị tham chiếu, hoàn thành thông minh, hỗ trợ chữ ký, đổi tên, hành động mã hóa và định dạng SQL với nhiều kiểu cài đặt sẵn.
Lập trình viên PostgreSQL nên đọc bài này để khám phá cách postgres-lsp nâng cao hiệu suất IDE với các tính năng như hoàn thành ngữ cảnh, định nghĩa và tham chiếu nhanh, và định dạng SQL theo nhiều phong cách chuyên nghiệp, thay vì phụ thuộc vào các công cụ cũ dựa trên regex.

Một nhà phát triển tên Gretchen gia nhập dự án Node.js cũ kỹ sau khi bị mua lại và phát hiện hàng loạt lỗi nghiêm trọng: logging bị hỏng chỉ in ra "DEBUG", lỗ hổng SQL injection từ truy vấn thô, thiếu middleware phân quyền trên hầu hết endpoints (kể cả API admin), codebase dừng ở Node.js 14, và dữ liệu request được đưa trực tiếp vào database mà không qua bất kỳ validation nào.
Lập trình viên nên đọc bài này để tránh rơi vào những sai lầm an toàn và thiết kế không hiệu quả trong dự án Node.js, từ đó học cách cải thiện bảo mật, quản lý lỗi và tối ưu hóa hệ thống ngay từ giai đoạn đầu.
Thay vì nhúng mô hình dữ liệu vào components.schemas của tài liệu OpenAPI, bài viết đề xuất sử dụng các tệp JSON Schema độc lập với $id riêng trong thư mục schema/. Những schema này có thể tái sử dụng cho nhiều hệ thống (validation, generate code, docs, data warehouse) mà không phụ thuộc vào OpenAPI. OpenAPI overlays giúp điều chỉnh schema gốc cho mục đích cụ thể (như dịch description sang tiếng Đức) mà không thay đổi cấu trúc cốt lõi.
Lập trình viên nên đọc bài này để hiểu cách tối ưu hóa tái sử dụng và quản lý các định dạng dữ liệu độc lập từ OpenAPI, giúp giảm bớt sự phụ thuộc vào các tài liệu API cụ thể và mở rộng khả năng tái sử dụng cho nhiều công cụ khác nhau.
Các association đa hình (polymorphic associations) trong PostgreSQL gây ra suy giảm hiệu suất nghiêm trọng do O(M×N) phép join không cần thiết, nhưng ba bản vá đang được thảo luận (Result Filter, Sort Pushdown, SubLink relocation) sẽ giải quyết vấn đề này bằng cách tối ưu hóa bộ lọc, sắp xếp sớm và chuyển đổi EXISTS thành SEMI-JOIN. Ngoài ra, thống kê selectivity (CREATE STATISTICS) cũng đang trong giai đoạn thử nghiệm để cải thiện hiệu suất truy vấn.
Lập trình viên cần đọc bài này để hiểu cách tối ưu hóa các mối liên kết đa hình trong PostgreSQL, giúp tránh mất hiệu suất khi ORM tự động tạo các join không hiệu quả, từ đó cải thiện tốc độ xử lý các truy vấn lớn.
Một lập trình viên chia sẻ kinh nghiệm khi ranh giới giữa hai module Catalog và Collaboration trong kiến trúc modular monolith dần trở nên không thể đảo ngược do yêu cầu kinh doanh buộc chuyển từ giao tiếp bất đồng bộ sang đồng bộ, khiến các module thực tế hoạt động như một khối thống nhất dù ranh giới vẫn tồn tại trên giấy. Bài viết khuyên nên coi ranh giới module là tạm thời, bắt đầu với ít module lớn hơn và chỉ tách nhỏ khi rõ ràng, đồng thời ưu tiên yêu cầu nhất quán hơn là trực giác về domain.
Lập trình viên nên đọc bài này để tránh rơi vào sai lầm khi cố gắng giữ các module độc lập trong một monolith mà thực tế đã bị "sáp nhập" nhờ yêu cầu tính nhất quán đồng bộ, khiến kiến trúc trở nên khó duy trì và mở rộng sau này.