Trong composite index (index nhiều cột) kiểu B-tree, thứ tự cột rất quan trọng — giống danh bạ sắp theo "họ rồi tên": tra theo họ rất nhanh, nhưng tra chỉ theo tên thì gần như vô dụng.
Index (tenant_id, status, created_at) phục vụ tốt query lọc tenant_id, rồi status, rồi sắp theo created_at; nó KHÔNG tương đương (created_at, status, tenant_id).
sql
CREATE INDEX idx_orders_tenant_status_created
ON orders (tenant_id, status, created_at DESC);Quy tắc: đặt cột lọc bằng (=) có tính phân biệt cao lên trước, cột khoảng/sắp xếp để sau.
Luôn kiểm chứng bằng query thật và EXPLAIN ANALYZE.