A hands-on benchmark compares two newer PostgreSQL regex extensions, pg_tre and pg_re2, against the built-in pg_trgm-backed regex search on a 33GB table of 1.6 million rows. pg_tre builds a large approximate-regex index (21GB, ~7 hours to build) offering fuzzy matching via Levenshtein distance, but is slower than trigram for standard searches and rejects some regex syntax like lookbehind. pg_re2 uses Google's RE2 library, builds a smaller/faster GIN index (2927MB, ~15 minutes) that outperforms pg_trgm on both simple and complex regex queries, though RE2 also lacks lookbehind support. The author concludes both extensions are promising but still have rough edges.
Nguồn: https://postgr.es/p/9tb. 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…
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 bắt đầu bằng việc tạo bảng comments với 1 triệu bản ghi trong PostgreSQL để đánh giá hiệu suất các chiến lược indexing. Tác giả chạy EXPLAIN ANALYZE trên các truy vấn lọc và sắp xếp theo nhiều cột, đo thời gian thực thi của sequential scan là khoảng 17 ms khi không có index. Khi tạo chỉ mục đơn cột trên cột được dùng trong WHERE, thời gian giảm xuống dưới 2 ms; nhưng chỉ mục hợp thành (c1, c2) chỉ hiệu quả khi thứ tự cột trong chỉ mục khớp với thứ tự sử dụng trong predicate và ORDER BY. Đảo ngược thứ tự cột trong chỉ mục hợp thành khiến planner phải thực hiện index scan kết hợp với recheck hoặc fallback về sequential scan, làm tăng thời gian lên 5‑8 ms tùy thuộc vào selectivity. Bài học là: thiết kế chỉ mục hợp thành cần đặt cột có tính chọn lọc cao hoặc được sử dụng trong điều kiện bằng trước, sau đó mới là cột dùng cho range hoặc sắp xếp, và luôn xác thực bằng EXPLAIN ANALYZE trên dữ liệu thực tế.
Bài viết này giúp lập trình viên tối ưu hóa hiệu suất truy vấn SQL bằng cách giải thích cách tạo và sử dụng chỉ mục composite đúng cách.
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ử