为嵌套数组内的json元素创建Btree索引

时间:2018-10-12 06:47:01

标签: postgresql jsonb

我正在尝试在下面的json结构中的“ k”元素上创建btree索引

{  
   "a":"asd",
   "b":{  
         "key1" : "1234"     
      "c":{  

         "d"  : "01-OCT-18",
         "e"  : "xyz",
         "f"  : 3,

         "g":[  
              {  
               "h": "abc"

下面是我使用过的语句,但是响应仍然很慢,这使我认为索引没有正确应用,或者为数组内的元素建立索引存在一些不同的语法。

CREATE INDEX "K_BI" ON public."Sample" USING BTREE ((data -> 'a'-> 'b'-> 'c' -> 'g' -> 'h'))

如果我对不在数组内部的子元素应用索引,则下面的方法效果很好。 我已经为'a'和'key1'元素应用了索引,可以看到在有和没有索引的情况下响应时间都有显着差异。

CREATE INDEX "A_BI" ON public."Sample" USING BTREE ((data -> 'a'-> 'b'-> 'key1'))   

CREATE INDEX "KEY_BI" ON public."Sample" USING BTREE ((data -> 'a'))    

如果有人对在数组内部为元素创建索引有任何想法。即我的k元素。

0 个答案:

没有答案