Đọc đầu ra EXPLAIN ANALYZE trong Postgres mà không bị lạc

PostgreSQL EXPLAIN ANALYZE tutorial. Learn query plan interpretation, bottleneck detection, and database performance optimization.

  • AI
  • MIT
  • Cập nhật 2026-05-15

{</* resource-info */>}

Đầu ra EXPLAIN ANALYZE trông đáng sợ cho đến khi bạn biết ba con số thực sự quan trọng. Đây là thứ tự tôi đọc chúng, và các mẫu chỉ ra các lỗi cụ thể.

Ba con số thực sự quan trọng #

1. Tổng thời gian thực thi (Total Execution Time) #

Total runtime: 1234.567 ms

Đây là chỉ số quan trọng nhất. Nếu truy vấn chậm, nó sẽ cho bạn biết ở đây.

2. Số hàng thực tế vs số hàng ước tính (Actual vs Estimated Rows) #

Seq Scan on users  (cost=0.00..123.45 rows=1000 width=32) (actual time=1.234..567.890 rows=50000 loops=1)

Sự khác biệt lớn cho thấy trình lập kế hoạch đã đưa ra giả định sai.

3. Tỷ lệ trúng bộ đệm (Buffer Hit Ratio) #

Buffers: shared hit=1000 read=50

Tỷ lệ trúng cao = sử dụng bộ đệm tốt, tỷ lệ trúng thấp = vấn đề I/O đĩa.

Thứ tự đọc #

  1. Bắt đầu từ dưới - tổng thời gian thực thi
  2. Làm việc lên trên - tìm nút có chi phí cao nhất
  3. Kiểm tra ước tính hàng - thực tế vs ước tính
  4. Xem thống kê bộ đệm - mẫu I/O

Mẫu vấn đề phổ biến #

Quét tuần tự khi nên quét chỉ mục #

Seq Scan on large_table (cost=1000.00..2000.00 rows=100000 width=32)

Giải pháp: Thêm chỉ mục phù hợp

Vòng lồng khi nên kết nối băm #

Nested Loop (cost=1000.00..100000.00 rows=1000 width=64)
  -> Seq Scan on users
  -> Index Scan on orders

Giải pháp: Tăng work_mem hoặc viết lại truy vấn

Quá nhiều bộ đệm không trúng #

Buffers: shared hit=10 read=1000

Giải pháp: Tăng shared_buffers hoặc cải thiện truy vấn

Sắp xếp tràn ra đĩa #

Sort Method: external merge  Disk: 16384kB

Giải pháp: Tăng work_mem

Ứng dụng thực tế #

Những hiểu biết này giúp tôi xác định và sửa chữa:

  • Chỉ mục bị thiếu
  • Thứ tự kết nối không hiệu quả
  • Vấn đề thiếu bộ nhớ
  • Bộ đệm không trúng

Hãy nhớ: EXPLAIN ANALYZE là trình gỡ lỗi hiệu suất truy vấn của bạn. Học cách đọc nó sẽ tiết kiệm cho bạn vô số giờ đoán mò.


Công Cụ Đề Xuất #

Cho developer xây dựng hoặc triển khai công cụ AI mã nguồn mở:

  • DigitalOcean — $200 tín dụng miễn phí cho người dùng mới, 14+ region toàn cầu, droplet GPU/CPU một-cú-click cho AI workload.
  • Shiyunapi Claude API — Proxy Anthropic Claude / OpenAI / DeepSeek API. Hầu hết AI tool ở trên (chatbot, code gen, translation, search, v.v.) cần LLM API key — proxy này cho access ổn định top model với ~30% giá chính thức.
  • Hostinger — Lựa chọn VPS giá tốt cho thị trường Việt Nam.

Affiliate link — không tăng chi phí của bạn nhưng giúp dibi8.com duy trì hoạt động.

💬 Bình luận & Thảo luận