招聘【已结贴】菜鸟 求 PostgreSQL 数据库优化高手, 酬劳 1000 元

NoOne
143阅读1评论1 个月前

感谢电鸭社区。第一次发帖,如果有不符合社区规则的地方,请轻拍。

目前我有一个叫做trades的表,其中会作为查询参数的字段为

  • sender,
  • receiver
  • timestamp
  • tokens:是 jsonb 数据。
    查询结果需要根据 timestamp 做降序排序,取数据的范围是查询结果的 10~100条数据。
    目前 trades 表有 7百万条数据,预计 3 个月左右能达到 2000 万条左右数据。

其中,

  1. 查询 account/:account/trades , 查询的条件是 account 可以是sender 或者receiver 中的某一个。
  2. token/:token/trades, 查询的条件是 token 可以是jsonb tokens 中的某一个。

目前的需求是,给定 account 或者token, 需要能从数据库中在 1s 内查询 出满足条件的前100条或者最后100条的数据。

你提供解决问题的思路和方案,代码可以不用操作。

我的后端用的是 Nestjs,orm 用 knex/typeorm 皆可。

招聘类型:
外包零活
专业领域:
开发
工作方式:
线上兼职
需消耗电量 5
加载中…
精选评论
1 个月前叶脉随想曲

大概能想到的策略是 :

  1. 把token从jsonb中提取出来新建一列,jsonb查询稍慢一些
  2. 对send和receiver建联合索引
  3. 对token建索引
  4. 木有4了,才2000w的表,1s内返回应该是足够的了

看得上就打钱,😂😂😂