![](/img/trans.png)
[英]Is there any point using MySQL “LIMIT 1” when querying on indexed/unique field?
[英]Querying Datastore using some of the indexed properties
我正在嘗試 Cloud Datastore 的索引,但我無法確定解決查詢所需的配置。
我創建了一些相同類型的實體(名為“對象”),它們都具有 5 個名稱相同的屬性(property_0、property_1、...、property_4)。 然后,我為該類型創建了一個復合索引,索引所有 5 個屬性,並將 property_4 設置在最后一個位置,因為我想對其應用不等式過濾器。
索引的定義是:
indexes:
- kind: object
ancestor: no
properties:
- name: property_0
direction: asc
- name: property_1
direction: asc
- name: property_2
direction: asc
- name: property_3
direction: asc
- name: property_4
direction: asc
我試圖解決的查詢將始終在 property_4 上應用不等式過濾器,並且可能在其他一些屬性上存在過濾器。 一些例子:
唯一有效的查詢是,如果我過濾索引中的每個屬性,它們的 rest 會顯示錯誤消息“您的數據存儲沒有此查詢所需的復合索引(開發人員提供)”。
不應該所有查詢都由創建的索引解決嗎? 或者我是否需要為我想要應用的每個過濾器組合創建一個索引? (即過濾property_4和property_0的一個索引;property_4和property_1的另一個索引;property_4、property_2和property_3的另一個索引;...)
您是對的,您需要為要應用的過濾器的每個組合創建索引。
您可以通過以下方式在index.yaml文件中指定單獨查詢的索引:
indexes:
- kind: object
properties:
- name: property_0
- name: property_1
- name: property_2
- name: property_3
- name: property_4
- kind: object
properties:
- name: property_3
- name: property_4
- name: property_0
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.