Pavel Stehule shares a set of experimental patches that embed Lua scripting into psql, PostgreSQL's command-line client. The integration lets users define custom slash commands (like a customizable \dt) with full control over filtering, sorting, and output formatting via Lua callback functions. A worked example shows a custom \my.dt+ command that sorts tables by size, ascending or descending, replicating functionality the author had unsuccessfully tried to get added to core psql a decade earlier via mailing list discussion, and later worked around with the separate pspg tool.
Nguồn: https://postgr.es/p/9tg. 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 mặc định bọc mỗi câu lệnh trong một giao dịch riêng khi không có BEGIN…COMMIT rõ ràng. Tuy nhiên, khi gửi nhiều câu lệnh trong một chuỗi truy vấn đơn (thông qua PQexec hoặc các hàm plpgsql) hoặc sử dụng các tiện ích như COPY và CREATE INDEX CONCURRENTLY, máy chủ sẽ ẩn ý tạo một giao dịch duy nhất bao gồm tất cả các câu lệnh đó. Điều này có thể dẫn đến việc giữ khóa lâu hơn, tiêu thụ ID giao dịch tăng nhanh và làm khó khăn việc rollback một phần công việc khi lỗi xảy ra. Do đó, lập trình viên cần kiểm tra xem ứng dụng của mình có vô tình nhóm nhiều câu lệnh vào một giao dịch ngầm không và cân nhắc sử dụng BEGIN…COMMIT cụ thể khi cần kiểm soát granularity. Theo dõi pg_stat_activity để phát hiện các giao dịch mở dài hạn cũng là biện pháp phòng ngừa tốt.
Bài này giúp lập trình viên hiểu rõ cách Postgres tự động tạo giao dịch nhiều câu lệnh, tránh lỗi và tối ưu hiệu năng.
Trong PostgreSQL, các replica bất đồng bộ thường trả về dữ liệu cũ vì chúng chỉ áp dụng WAL sau một khoảng trễ, gây ra hiện tượng đọc không thấy bản ghi vừa ghi trên primary.
Phiên bản PostgreSQL 19 bổ sung lệnh WAIT FOR cho phép một truy vấn READ chỉ định vị trí WAL (log sequence number) mà nó muốn chờ trước khi trả về kết quả.
Khi lệnh được thực hiện, phiên bản server sẽ tạm dừng việc đọc cho đến khi WAL đã được replay tới vị trí đó trên replica, từ đó đảm bảo read‑your‑writes mà không cần chuyển sang synchronous replication hoặc tăng toàn bộ độ trễ hệ thống.
Điều đáng học: thay vì phải bật synchronous replication toàn cluster hoặc chịu đọc stale data, разработчики có thể sử dụng WAIT FOR cho các giao dịch cụ thể nơi cần nhất quán đọc‑ghi, tiết kiệm tài nguyên và kiểm soát độ trễ chi tiết.
Ví dụ thực tế, một lệnh như SELECT ... WAIT FOR LSN '0/3000000' sẽ chỉ trả về sau khi replica đã áp dụng WAL tới LSN đó, cho phép ứng dụng xác nhận ngay lập tức việc ghi vừa thực hiện trên primary mà không ảnh hưởng đến các truy vấn khác.
Bài này giúp lập trình viên hiểu cách sử dụng WAIT FOR trong PostgreSQL 19 để đảm bảo tính nhất quán read-your-writes trên bản sao bất đồng bộ.
Nhiều đội phát triển đang chuyển sang quy trình làm việc dựa trên nhánh để quản lý thay đổi schema cơ sở dữ liệu, nhưng trước đây Neon CLI chưa cung cấp các lệnh trực tiếp để tạo, chuyển đổi và so sánh các nhánh Postgres. Bản cập nhật mới thêm các lệnh neon branch create, neon branch switch, neon diagnose để kiểm tra hiệu suất và khóa, cùng neon schema-diff để tạo ra diff chi tiết giữa hai nhánh hoặc giữa nhánh và sản xuất. Những lệnh này giảm thiểu việc phải chạy các script SQL thủ công và cho phép phát hiện sớm các vấn đề như chỉ mục thiếu hoặc truy vấn chậm trước khi hợp nhất. Việc tích hợp chẩn đoán Postgres và diff schema trực tiếp vào CLI giúp团队 сократить thời gian review và tăng độ tin cậy của quá trình triển khai. Điều này cho thấy đầu tư vào công cụ CLI chuyên biệt cho quy trình làm việc dựa trên nhánh có thể mang lại lợi ích rõ rệt về hiệu suất và chất lượng mã nguồn cho các dự án sử dụng Postgres.
Bài này giúp bạn khai thác sức mạnh của Neon CLI với các tính năng mới như workflow branch-first, chẩn đoán Postgres và so sánh schema.
Bài viết mô tả bối cảnh nhu cầu tách biệt lưu trữ và tính toán trong hệ thống Postgres khi ứng dụng AI agents ngày càng tăng. Nó giải thích cách coi WAL (Write‑Ahead Log) như nguồn thực thể duy nhất và đưa nó lên Amazon S3 để lưu trữ đối tượng. Kỹ thuật này cho phép ricostruzione cơ sở dữ liệu từ WAL trên S3 mà không cần giữ toàn bộ dữ liệu trên đĩa local, giảm chi phí lưu trữ và mở rộng khả năng sao chép bất đồng bộ. Các tác động bao gồm thời gian phục hồi nhanh hơn, khả năng truy vấn lịch sử dữ liệu trực tiếp từ S3 và tích hợp dễ dàng với các công cụ xử lý sự kiện cho agents. Bài học chính là việc xem WAL như lớp lưu trữ không thay đổi mở ra kiến trúc lakebase, giúp团队 tách biệt công việc vận hành Postgres khỏi chi phí cơ sở hạ tầng và chuẩn bị sẵn sàng cho workloads AI‑native.
Bài viết giúp lập trình viên hiểu cách tận dụng WAL và S3 để tối ưu hóa lưu trữ dữ liệu trong thời đại AI agents.
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.
Đọ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ử