PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Kế hoạch truy vấn của các postgres có chỉ mục

Kế hoạch này:

Index Scan using Designation_place_name on myTable  (cost=0.00..67701.36 rows=22043 width=27) (actual time=0.061..3.796 rows=3376 loops=1)
   Index Cond: ((relation)::text = 'Manager'::text)
   Filter: (timeOfJoining > '1930-10-10 00:00:00+05:53:20'::timestamp with time zone)
 Total runtime: 4.082 ms
(4 rows)

Về cơ bản có nghĩa là:

  1. Sử dụng chỉ mục Designation_place_name
  2. Tìm các hàng phù hợp với quan hệ điều kiện chỉ mục ='Người quản lý'
  3. Chỉ giữ lại các hàng phù hợp với tiêu chí timeOfJoining

Trong bước 2, các trang đĩa được truy cập "ngẫu nhiên", thay vì tuần tự, có nghĩa là chỉ mục chứa địa chỉ của các hàng phù hợp trên đĩa và Postgres truy cập các địa chỉ này theo thứ tự được chỉ định bởi chỉ mục. (Điều này có thể tốn kém, btw. Đôi khi, người lập kế hoạch sẽ quyết định rẻ hơn khi chỉ đọc toàn bộ bảng (quét seq) hoặc tìm nạp hàng loạt tất cả các hàng trên một trang trong khi bỏ qua thứ tự được chỉ ra bởi chỉ mục (quét chỉ mục bitmap).)

Lưu ý:không có (bảng) nào tham gia vào truy vấn đó. Nếu có một, bạn đã thấy các mức độ thụt lề bổ sung. Đọc chúng từ thụt lề nhiều nhất đến ít thụt lề nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để viết một ràng buộc liên quan đến số lượng hàng tối đa trong postgresql?

  2. Kết nối db psycopg2 bị treo khi mất kết nối mạng

  3. 3 cách liệt kê tất cả các kích hoạt cho một bảng đã cho trong PostgreSQL

  4. Làm cách nào để khởi động PostgreSQL trên Windows?

  5. tính toán tổng các giá trị được liên kết với các phạm vi ngày trùng lặp