开发者社区> 问答> 正文

mysql数据库并发碰到的问题

上传数据到数据库的时候,我是先通过查询出第一个表的最大值的自增id,在for语句循环累加,累加的数字为第二个表的某个字段,然后在进行mysql语句操作。但我想问下,如果出现同时几个人在操作数据的时候,这个最大值id累加会出现一些错误,我该怎样去防止多人同时添加数据呢?
如何考虑好数据库并发问题?有没有什么例子可以参照下?

展开
收起
落地花开啦 2016-02-13 16:50:53 2937 0
2 条回答
写回答
取消 提交回答
  • 如果需要自增id做key,直接在sql语句中插入的时候不要写这个字段,db自己会生成自增的值,并发插入的时候,db底层会排序生成,不用人工介入。如果需要人工实现一个自增序列,那需要自己实现一个获取id的服务,所有db操作必须调用同一个服务获取id,不允许自己写代码插入。怎么实现这个顺序产生id的服务,可以自己再参考一下,有很多已经有的实现。

    2019-07-17 18:42:12
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    可以加锁
    1、对数据库加锁
    2、提供一个单例类获取最大id ,程序中对这个单例获取最大id的方法加锁

    2019-07-17 18:42:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载

相关镜像