Prepared statements in PostgreSQL follow a specific rule: for the first five executions, a custom plan is built using the actual parameter values, giving the same plan quality as textual substitution. On the sixth execution, PostgreSQL builds a generic plan (no parameter values) and compares its estimated cost to the average custom plan cost; if generic wins, PostgreSQL switches to it and sticks with it until invalidation. Generic plans use blind selectivity estimates (e.g., non-null fraction divided by n_distinct for equality, one-third of the table for inequality), which can be badly wrong on skewed data, causing queries to mysteriously slow down after the sixth execution. The decision is based purely on estimated cost, never actual runtime, and is asymmetrically sticky. Common culprits include PL/pgSQL functions, and drivers like psycopg 3 and JDBC that auto-promote to named statements after a threshold (default 5), causing the switch around the tenth or eleventh execution instead. Fixes include plan_cache_mode=force_custom_plan for skewed queries, driver-level prepare=False, query restructuring, or partial indexes on skewed columns.
Nguồn: https://postgr.es/p/9t3. 8 Sync 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.
Đang tải bình luận…
LibreDB Studio là IDE SQL mã nguồn mở, tự host cho PostgreSQL chạy trên trình duyệt, triển …
Bài viết thực nghiệm trên PostgreSQL bằng cách tăng số kết nối từ 1 lên 400 để đo throughput và latency. Kết quả cho thấy throughput đạt đỉnh ở khoảng 48 kết nối, sau đó giảm 37% khi tăng lên 400 kết nối, đồng thời latency tăng gấp 13 lần. Nguyên nhân là sự cạnh tranh về tài nguyên bộ nhớ và luồng trong PostgreSQL khi số kết nối vượt quá khả năng xử lý của CPU và bộ nhớ đệm, gây ra hiện tượng thrashing và tăng thời gian chờ lock. Điều này dạy chúng ta nên đo lường đường cong hiệu suất và chọn kích thước connection pool phù hợp, thay vì đặt giá trị cao nhất có thể.
Bài viết này giúp lập trình viên hiểu cách tối ưu kích thước connection pool để đạt hiệu suất cao nhất.
Các hướng dẫn viết code giúp đội ngũ phát triển duy trì tính nhất quán và giảm lỗi khi làm việc trên nhiều dự án khác nhau. Bài viết phân tích ba cấp độ quy tắc: những nguyên tắc áp dụng cho mọi ngôn ngữ lập trình, những quy tắc đặc thù cho Ruby và những quy tắc cụ thể trong một ứng dụng Rails. Nguyên nhân kỹ thuật là sự khác biệt về cú pháp, idiom và cấu trúc dự án giữa các lớp này, dẫn đến việc các quy tắc chung có thể bị vi phạm hoặc thiếu sót khi không được điều chỉnh phù hợp. Khi không tuân thủ đúng cấp độ,团队 sẽ gặp phải mã nguồn không đồng nhất, khó đọc và tăngภาระ bảo trì, đặc biệt là trong các dự án Rails lớn nơi các convention có tác động mạnh đến việc tạo ra code sinh tự động. Bài học chính là nên xây dựng bộ hướng dẫn đa lớp, sử dụng công cụ như RuboCop và Rails‑specific cops để tự động kiểm tra từng cấp độ và đảm bảo mọi thành viên đều tuân thủ cùng một chuẩn.
Bài viết này cung cấp hướng dẫn lập trình toàn diện từ nguyên tắc chung đến quy định cụ thể cho Ruby và Rails, giúp bạn viết code chất lượng hơn.
Nhiều sản phẩm muốn triển khai AI thực thời để phản hồi ngay lập tức khi số lượng người dùng tăng. Khi tải tăng, các nút serving gặp hạn chế về bộ nhớ GPU, thời gian khởi tạo batch và độ trễ mạng, khiến thời gian xử lý mỗi request tăng đột biến. Điều này dẫn tới spikes latency, giảm throughput và đôi khi gây lỗi timeout hoặc downgrade chất lượng dịch vụ. Cần thiết kế hệ thống serving với autoscaling dựa trên metric latency, sử dụng batching động và pre‑warm các instance để giữ ổn định khi tải thay đổi. Ngoài ra, việc monitor chi tiết từng giai đoạn pipeline (pre‑process, inference, post‑process) giúp phát hiện sớm điểm bottle‑neck trước khi ảnh hưởng tới người dùng.
Bài này giúp lập trình viên hiểu được những thất bại phổ biến khi triển khai AI thời gian thực quy mô lớn và cách tránh chúng hiệu quả.
Bài viết đánh giá lại những lời khuyên trước đây về các tính năng như COPY, TOAST, BRIN …
Hầu hết các nhà cung cấp Postgres lớn (AWS RDS, Azure, Google Cloud SQL, Supabase, Neon...) đều tích hợp sẵn PgBouncer hoặc giải pháp pooling tương tự, chỉ trừ IBM Cloud và Oracle OCI. Bài viết cho rằng pooling là yếu tố bắt buộc vì Postgres xử lý kết nối kém hiệu quả, trái ngược với MySQL hay MongoDB vốn không cần giải pháp bổ sung.
Là lập trình viên quản lý cơ sở dữ liệu PostgreSQL, bạn nên đọc bài này để hiểu tại sao việc sử dụng PgBouncer không chỉ là một giải pháp hiệu quả mà còn là một công cụ bắt buộc để tối ưu hóa hiệu suất, tránh tình trạng "connection leak" và giảm chi phí tài nguyên khi làm việc với nhiều ứng dụng đồng thời.
Linear đã sử dụng Turbopuffer để tối ưu hóa đường dẫn đọc đồng bộ (delta sync read path), đảm bảo độ trễ bắt kịp dữ liệu (catch-up latency) ổn định trên khối lượng hơn 20 TB thao tác đồng bộ.
Một lập trình viên cần đọc bài này để hiểu cách tối ưu hóa cơ chế đồng bộ delta sync bằng Turbopuffer, giúp giảm thiểu thời gian chậm trễ khi xử lý hàng trăm GB hoặc TB dữ liệu đồng bộ, đặc biệt quan trọng trong hệ thống phân tán và ứng dụng có yêu cầu độ tin cậy cao về thời gian phản hồi.
Doltgres đã đạt hiệu suất tương đương MySQL nhờ những tối ưu hóa gần đây.
Lập trình viên muốn tối ưu ứng dụng database cho hiệu suất cao và khả năng mở rộng nhanh chóng nên đọc bài này để khám phá cách Doltgres vượt trội so với MySQL trong các trường hợp sử dụng thực tế.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000+ bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thử