硕菊叶
硕菊叶
  • 发布:2021-05-28 21:42
  • 更新:2021-05-31 17:56
  • 阅读:611

关于unicloud腾讯云大量数据处理的问题。。

分类:uniCloud

我的数据表结构如下:
{
_id:"自动生成",
uid:"用户id",
barcode:"条码",
pagecode:"条码页码"
}
其中,页码对应多个条码,比如我一个页码可以对应10万个条码,然后我在云函数中使用update
db.collection("表名").where({
pagecode:"页码",
uid:"用户id"
}).update({
activate:true
})
意思就是将此用户此页码的数据激活,然后数据有10万条,这个时候云函数就会报错,提示超时。。而且执行时间基本超过10秒,pagecode_uid设置了索引也没用。。云函数调成60秒时间了,求解这个超时要怎么调整?

2021-05-28 21:42 负责人:无 分享
已邀请:
硕菊叶

硕菊叶 (作者)

完全没人回答的吗?这么严重的问题还是付费的东西就这态度吗??

  • DCloud_uniCloud_WYQ

    尽量分批去更新,一次更新大量数据必然是超时的,但是后台还是会去完成你的更新操作

    2021-06-02 17:14

  • 硕菊叶 (作者)

    回复 DCloud_uniCloud_WYQ: 问题就在于10万条数据也不算什么大量数据吧。。而且分批更新如何更新?把所有要更新的ID查出来然后一个一个去更新??我现在是通过一个字段作为条件去更新的啊。

    2021-06-07 13:59

  • 硕菊叶 (作者)

    回复 DCloud_uniCloud_WYQ: update难道还能像分页一样更新数据?

    2021-06-07 14:00

  • DCloud_uniCloud_WYQ

    回复 硕菊叶: 你也可以不等待更新,更新操作会自动完成,只是耗时超过云厂商设定的阈值就会超时而已,实际会更新成功,可以描述一下你的业务场景吗

    2021-06-07 18:21

  • 硕菊叶 (作者)

    回复 DCloud_uniCloud_WYQ: 我的场景是客户扫码激活标签,可能需要一次性激活几百个,几千个,几万个或者十几万都有可能,如果不等待更新的话前端如何反馈是否更新成功呢?要是在更新的时候客户再次执行了其他更新是不是会冲突呢?

    2021-06-09 16:31

  • 硕菊叶 (作者)

    回复 DCloud_uniCloud_WYQ: 就像我上面贴的代码一样的,只是将激活的字段设置为true。。10万条数据都会报错。。这有点太容易报错了吧。。

    2021-06-09 16:32

  • 硕菊叶 (作者)

    回复 DCloud_uniCloud_WYQ: 而且我数据表才300W条数据,要是之后上千万条或者上亿条数据,更新是不是会更慢啊。。

    2021-06-09 16:33

  • DCloud_uniCloud_WYQ

    回复 硕菊叶: 更新的数据量越多就会越慢,任何数据库都是这个表现,你这个实现有点不太合理。

    2021-06-10 10:52

  • 硕菊叶 (作者)

    回复 DCloud_uniCloud_WYQ: 那你觉得怎么实现会合理一些呢?需求就是这样,需要一次性激活10万张标签或者几十万张。。

    2021-06-10 15:24

  • DCloud_uniCloud_WYQ

    回复 硕菊叶: 如果确实有这个需求那就异步就行了,数据库请求发出去之后不用等待执行结果

    2021-06-11 18:21

  • 硕菊叶 (作者)

    回复 DCloud_uniCloud_WYQ: 如果是异步的话我没办法执行下一步的操作了啊,我是激活成功后还要修改一些其他的标志位。。如果是异步没有结果的话我就没办法判断是否修改成功啊。。如果数据库执行过程中修改失败了我也没办法知道结果。。

    2021-06-15 14:31

该问题目前已经被锁定, 无法添加新回复