记一次小学问开发数据库异常
AI-Learning一次bug
背景和排查
bug出现在实践课代码提交接口上,源代码为
1 | while True: |
运行是没有问题的,提交到judge0可以正常拿到token,用token也能正常拿到结果,问题出在存储到数据库的过程中,因为上述循环输出结果太长,把mysql的text撑爆了
导致提交记录一直没有更新,一直处于提交中的状态
这里可以去查一下mysql的text长度上限是多少
- TEXT 65,535 bytes ~64kb
- MEDIUMTEXT 16,777,215 bytes ~16Mb
- LONGTEXT 4,294,967,295 bytes ~4Gb
所以在插入数据库前需要判断截断,做特殊处理
反思
任何跟数据库相关的数据在落库之前一定要做校验,不止是从用户端拿来的数据还是调用第三方接口得到的用户,还有就是除了数据正确性外,还要注意数据长度
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Coding Road!