前几天遇到一件很尴尬的事情,第一次使用云开发上线的小程序莫名其妙的时候崩了,打开开发工具看到如下错误:
为什么说这错误让人尴尬呢,主要是开发的时候没问题,测试的时候没问题,上线依然没问题!但是访问量稍微起来一点就蹦了。当时的感觉也是一脸懵逼,找开发文档没有这个错误的代码的介绍,在网上找了很多资料,有说遇到这个错误的有但是解决方法没有,无奈只好发起工单求助,当时是晚上值班人员说没有权限排查具体的问题,说可能有两方面会引起这问题:
- 并发量过高,云函数默认并发限制是1000,数据库是20
- 数据库没有建立正确的索引导致
首先说第1个点,当晚流量确实有,但是并发绝对没有到1000,这是男人的直觉…,所以排除1。数据库索引确实没有建立,但是刚开始数据并不大,想着也不太可能是这问题,但是也重新去建了索引组合索引啥的(索引介绍:点此跳转),但是还是没有解决这问题,第二天拉了个群,最后排查确定可能是使用了聚合查询或者统计count询引起的,最后改了代码发了一个新的版本发现这问题就没遇到过了。
如果遇到-501000错误排查思路:
- 并发量是否过高
- 数据库是否合理的建立了索引
- 是否存在慢查询,如全表扫描的count,聚合查询等
最后推荐看一下:《云开发 数据库性能与优化》