A deep dive into three PostgreSQL logging GUCs used to monitor internal housekeeping: log_checkpoints, log_autovacuum_min_duration, and log_temp_files. Explains what each log line means, how to interpret checkpoint sync stalls, how a duration-based autovacuum threshold hides the most telling problems (recommends setting it to 0), and how temporary file logging is really a work_mem diagnostic (also recommends 0). Notes that PostgreSQL 15 flipped the defaults for log_checkpoints and log_autovacuum_min_duration to on/10min respectively, but log_temp_files remains off by default and argues it should change too.
Source: https://postgr.es/p/9t5. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
PostgreSQL chuẩn bị câu lệnh (prepared statement) sẽ tạo kế hoạch tùy chỉnh dựa trên giá trị tham số thực tế trong năm lần thực thi đầu tiên, mang lại chất lượng kế hoạch như thay thế văn bản. Khi đến lần thực thi thứ sáu, hệ thống xây dựng kế hoạch chung (generic plan) không sử dụng giá trị tham số và so sánh chi phí ước tính của nó với chi phí trung bình của các kế hoạch tùy chỉnh; nếu kế hoạch chung có chi phí thấp hơn, PostgreSQL sẽ chuyển sang dùng kế hoạch chung và giữ nó cho tới khi bị làm vô hiệu. Kế hoạch chung dựa trên ước tính chọn lọc mù quáng (ví dụ, phân số không null chia số giá trị riêng biệt cho phép bằng, một phần ba bảng cho phép không bằng), có thể sai lệch nghiêm trọng trên dữ liệu lệch, dẫn đến việc truy vấn chậm xuống bất ngờ sau lần thực thi thứ sáu. Quyết định này chỉ dựa trên chi phí ước tính, không đo lường thời gian thực thi thực và có tính dính dáng bất đối xứng; các nguyên nhân thường gặp là hàm PL/pgSQL và các driver như psycopg 3 hoặc JDBC mà tự động nâng cấp thành câu lệnh có tên sau ngưỡng mặc định (5 lần), khiến chuyển đổi xảy ra khoảng lần thực thi thứ mười hoặc mười một. Các biện pháp khắc phục bao gồm đặt plan_cache_mode=force_custom_plan cho các truy vấn lệch, tắt chuẩn bị ở mức driver (prepare=False), viết lại truy vấn hoặc tạo chỉ mục phần phần trên cột lệch.
Bài này giúp lập trình viên hiểu và giải quyết hiện tượng truy vấn PostgreSQL đột ngột chậm sau lần thực hiện thứ sáu do sự chuyển đổi sang generic plan không phù hợp với dữ liệu không đồng nhất.
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 …
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 đá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á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.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it