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

PostgreSQL - truy vấn dựa trên chỉ mục GIN của giá trị HSTORE

Nỗ lực ban đầu của bạn là đúng nhưng bạn cần sử dụng chỉ mục btree (một phần) và quét chỉ mục bitmap để dựa vào đó:

create index on product(((ext->'size')::int)) where ((ext->'size') is not null);

Tương tự đối với khối lượng, và nếu người lập kế hoạch không hiểu nó ngay tại chỗ, hãy thêm hai mệnh đề where, tức là where ext->'size' is not null và tương tự đối với khối lượng.

Nếu có một mẫu nào đó (có thể là, vì hầu hết các sản phẩm có cùng kích thước cũng có khối lượng), có khả năng tạo chỉ mục đa cột kết hợp hai - một túi, mô tả kia.

Chỉ mục gin như bạn đã viết nó, cùng với truy vấn đi kèm (có lỗi cú pháp) về cơ bản sẽ làm điều tương tự nhưng không có thứ tự; nó sẽ chậm hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gây ra bởi:org.hibernate.MappingException:Cột lặp lại trong ánh xạ cho thực thể

  2. Tạo cơ sở dữ liệu trong SQLAlchemy test với PostgreSQL

  3. Thay thế một chuỗi bằng một chuỗi khác từ danh sách tùy thuộc vào giá trị

  4. Thông báo lỗi SQLAlchemy lạ:TypeError:đối tượng 'dict' không hỗ trợ lập chỉ mục

  5. Bản cập nhật Lion đã xóa người dùng 'postgres'. Làm thế nào để khôi phục lại nó?