Giáo trình tự học miễn phí · Dịch vụ hỗ trợ theo nhu cầu.
Bài 0435phút ước tínhCơ bản đến Chuyên sâu
4. Đánh Index (B-Tree, GIN, Hash) & Tối Ưu Tốc Độ Truy Vấn Hàng Triệu Dòng Với EXPLAIN ANALYZE
Giải quyết bài toán nghẽn hiệu năng: Đọc kế hoạch thực thi Query Plan, đánh Index chính xác và tăng tốc độ truy vấn từ vài giây xuống mili-giây.
⚡ Các Loại Index Trong PostgreSQL
- B-Tree Index (Mặc định): Phù hợp cho so sánh bằng
=, so sánh khoảng<,>, sắp xếpORDER BY. - GIN Index (Generalized Inverted Index): Phù hợp cho tìm kiếm Full-text search, mảng
ARRAY, dữ liệuJSONB. - Partial Index: Chỉ đánh Index trên tập dữ liệu thỏa điều kiện (Ví dụ:
WHERE status = 'active') giúp tiết kiệm RAM.
-- ĐỌC KẾ HOẠCH THỰC THI VÀ TỐI ƯU TRUY VẤN
-- 1. Đo lường hiệu năng trước khi đánh Index
EXPLAIN ANALYZE
SELECT * FROM orders WHERE customer_id = 45012 AND status = 'paid';
-- 2. Tạo Composite Partial Index tối ưu
CREATE INDEX idx_orders_customer_paid
ON orders (customer_id, order_date DESC)
WHERE status = 'paid';
-- 3. Đánh GIN Index cho cột dữ liệu JSONB
CREATE INDEX idx_products_attributes_gin ON products USING GIN (attributes);
Thực hành
Thực hành và tự đánh giá
Sử dụng EXPLAIN ANALYZE để kiểm tra chi phí truy vấn (Cost & Execution Time) trước và sau khi thêm Index trên bảng dữ liệu thử nghiệm.
🏢 BẠN MUỐN TRIỂN KHAI CHO CẢ PHÒNG BAN / DOANH NGHIỆP?
Đề Xuất Công Ty Tài Trợ & Đào Tạo In-House Trọn Gói
AI Tinh Gọn hỗ trợ khảo sát hiện trạng, kèm 1-1 on-premise bảo mật dữ liệu, setup hạ tầng riêng và xuất hóa đơn VAT hợp pháp cho doanh nghiệp.
⚖️ Bản quyền sở hữu trí tuệ: © 2026 AI Tinh Gọn (aitinhgon.vn) · Giấy phép Creative Commons CC BY-NC-ND 4.0. Cho phép tự học cá nhân, nghiêm cấm thương mại hóa hoặc bán lại.
Giáo trình mở →
Tiến độ tự học lưu trên trình duyệt này. Chỉ đánh dấu khi đã kiểm tra sản phẩm thực hành.