收藏
回答

关于lookup?

打算用云开发做一个文章和评论的数据库结构如下

文章表

{
  _id: 'abcd',
  _openid: 'fdsfdsfds',
  title: '测试',
  createDate: date  
 }


评论表

{
  _id: '',
  _openid: 'fdsfdsfds',
  bookid: 'adcd',
  date: date,
  comments: '你是逗比吗',
}


首页连表查询获取文章标题和总的评论数

最后连表查询出来的数据大概是这样

list:[

{

"_id":"1235ggfgf",

"title":"测试1",

"count":10000

},

{

"_id":"1235fdsfd",

"title":"测试2",

"count":10000

},

{

"_id":"1235fdffs",

"title":"测试3",

"count":10000

},

]

往数据库写了几十万条数据测试后发现,耗时太长了,8篇文章总共写入20多万条评论数据连表查询以后发现需要2秒以上,如果评论数更多,一次请求两页以上的数据那耗时就更长了,哪位大佬来看看,这是查询语句写的不好还有很大优化空间还是本身lookup的性能就是这样呢

回答关注问题邀请回答
收藏

1 个回答

  • 老张
    老张
    2020-09-19

    1、建索引;

    2、改表结构;评论这样的数据没有单独成表的价值,用嵌入数组形式写在文章表里好了。

    2020-09-19
    有用 1
    回复 3
    • 苏军
      苏军
      2020-09-19
      数组形式放文章表里我测试了也有问题,表中单条数据好像是有size限制的,我写过超过10万条以后就写不进了,如果考虑可能出现爆款评论,来个一篇文章20万条评论就蹦了
      2020-09-19
      回复
    • 老张
      老张
      2020-09-19回复苏军
      不建议你用云开发,换自己的服务器吧,20万评论的系统,总用户数不会少于一个亿。
      2020-09-19
      回复
    • 苏军
      苏军
      2020-09-19回复老张
      没那么夸张,有一个小程序有7,8万用户,现在官方不是鼓励用云开发就写了几个表测试了一下,性能比较不理想,要是性能还可以,后台开发省事就多了
      2020-09-19
      回复
登录 后发表内容
问题标签