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

Thay đổi kế hoạch thực thi của truy vấn trong postgresql theo cách thủ công?

Sử dụng truy vấn con hoặc CTE để buộc các hoạt động nhất định trước. Như:

SELECT *
FROM  (
   SELECT *
   FROM   tbl
   LIMIT  10
   ) x
ORDER  BY 1;

Bạn cần hiểu những gì bạn đang làm, tất nhiên. Trong ví dụ, tôi chọn 10 tùy ý hàng và sau đó sắp xếp chúng theo cột đầu tiên.
Bạn có thể sử dụng nhiều lớp truy vấn con hoặc nhiều CTE trong một hàng.

Ví dụ tương tự như CTE:

WITH x AS (
   SELECT *
   FROM   tbl
   LIMIT  10
   )
SELECT *
FROM   x
ORDER  BY 1;

Truy vấn con thường nhanh hơn đối với các truy vấn đơn giản, CTE cung cấp các tính năng bổ sung (như sử dụng lại cùng một CTE ở nhiều nơi trên các cấp truy vấn khác nhau).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao nó hoạt động khác với ~~ any ()?

  2. Postgres db design Bình thường hóa bảng hoặc sử dụng cột mảng

  3. Tạo bảng trong hình ảnh docker PostgreSQL

  4. Rownum trong postgresql

  5. Doctrine2 không đặt trình tự thành mặc định cho cột id (postgres)