开发者社区> 问答> 正文

MySQL 里面如何线程安全地实现 query and update

MySQL 里面如何线程安全地实现 query and update?我有一个表里面记录了 100 条验证码,网站后端读取一条验证码,然后就把它设置为已读。如果先 select 再 update,就线程不安全,可能会出现两次请求读取同一条验证码的情况。但是如果用锁,会影响性能。
来源:云原生后端社区

展开
收起
Atom 2020-04-25 14:04:54 882 0
1 条回答
写回答
取消 提交回答
  • 你先生成 1000 条入库,项目启动读到内存,每次验证从内存验证,验证通过发送 MQ,或者用多线程写库。只要在 Java 内存中, 而不是从库中判断逻辑,重复不重复其实都挺好判断的。我总结了一个规律,凡事一个业务需要特别复杂高深技术去实现的时候,大部分情况是业务思路跑偏了。找对方向,基本没有复杂的代码。
    另外:Django 可以用这个问题,参考地址:https://docs.djangoproject.com/en/1.11/ref/models/querysets/#select-for-update
    来源:云原生后端社区

    2020-04-25 14:06:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云MySQL云数据库产品体系介绍 立即下载
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
多IO线程优化版 立即下载

相关镜像