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

Làm thế nào để sử dụng uuid với loại chỉ mục gist postgresql?

Postgres 10 hoặc mới hơn

btree_gist bây giờ cũng bao gồm kiểu dữ liệu uuid , như Paul đã nhận xét . (Và một số kiểu dữ liệu khác, đặc biệt là tất cả enum các loại.)

Bây giờ tất cả những gì bạn cần làm:cài đặt tiện ích mở rộng một lần cho mỗi cơ sở dữ liệu:

CREATE EXTENSION btree_gist;

Sau đó, chỉ mục của bạn sẽ hoạt động.

Có liên quan:

Postgres 9.6 trở lên

(Câu trả lời gốc.)
Thông thường, tôi sẽ đề xuất mô-đun bổ sung btree_gist , nhưng loại uuid không được bao phủ bởi nó.

Về lý thuyết, vì UUID là a 128-bit quantity ( theo tài liệu ), cách hiệu quả nhất là chuyển đổi nó thành hai bigint hoặc float8 cho mục đích của chỉ mục. Nhưng không có phôi nào trong số này được xác định trong Postgres tiêu chuẩn.

Tôi đã tìm thấy một

Để sử dụng chỉ mục chức năng này, các truy vấn phải khớp với biểu thức đó. Bạn có thể sử dụng viết tắt "value"::text trong các truy vấn (nhưng không có trong định nghĩa chỉ mục mà không thêm các dấu ngoặc đơn).

Ngoài ra:không sử dụng giá trị value dưới dạng tên cột, nó là một từ dành riêng trong SQL chuẩn .

Câu hỏi là: tại sao bạn có cần chỉ mục GiST không. Giải pháp tốt nhất phụ thuộc vào mục tiêu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Chọn dữ liệu có tương tự trên trường dấu thời gian

  2. Tìm các bài báo trong đó mảng

  3. Không có toán tử nào phù hợp với (các) loại đối số và tên đã cho. Bạn có thể cần thêm phôi kiểu rõ ràng. - Netbeans, Postgresql 8.4 và Glassfish

  4. Truy vấn con PostgreSQL sử dụng như

  5. Các bế tắc trong PostgreSQL khi chạy UPDATE