我对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);
说它不起作用。我不知道如何深入到文件中并开始索引这些东西。
我希望你理解我的问题,因为我的英语不是最好的,可以帮助我在这里。我只是不知道还有什么可以尝试。
亲切的问候和许多提前感谢 彼得