PostgreSQL:在JSON数组中创建索引

时间:2016-07-21 14:56:58

标签: sql arrays json postgresql indexing

我对postregSQL很新,对SQL还不太熟悉。但是我想学习。 在我的数据库中,我想存储巨大的JSON文件(~2mio行,40mb),然后尽快查询它们。现在它是慢,所以我认为索引应该做的伎俩。 问题是我不知道如何索引文件,因为它有点棘手。我整天都在忙着开始变得绝望......

我的数据库是calles"重播" json列" replay_files"

所以我的文件看起来像这样:

"replay": [
    {
        "data": {
            "posX": 182,
            "posY": 176,
            "hero_name": "CDOTA_Unit_Hero_EarthSpirit"
        },
        "tick": 2252,
        "type": "entity"
    },
    {
        "data": {
            "posX": 123,
            "posY": 186,
            "hero_name": "CDOTA_Unit_Hero_Puck"
        },
        "tick": 2252,
        "type": "entity"
    }, ...alot more lines... ]}

我试着用heron_name:Puck获取所有条目 所以我试过这个:

SELECT * FROM重播r,json_array_elements(r.replay_file#>' {replay}')obj WHERE obj->'数据' - >>&# 39; hero_name' =' CDOTA_Unit_Hero_Puck';

哪个适用于较小的文件。 所以我想像那样索引:

CREATE INDEX hero_name_index ON     重播((json_array_elements(r.replay_file#>' {replay}') - >'数据' - >' hero_name);

说它不起作用。我不知道如何深入到文件中并开始索引这些东西。

我希望你理解我的问题,因为我的英语不是最好的,可以帮助我在这里。我只是不知道还有什么可以尝试。

亲切的问候和许多提前感谢 彼得

0 个答案:

没有答案