首页 新闻 会员 周边 捐助

多线程插入同一张数据表,出现字段冲突?有没很好的方法来控制?

0
悬赏园豆:100 [待解决问题]

在园子里找了2种方法

1.在 .cs里用 LOCK 

2.建一个键值流水号表   有  对应链接http://www.cnblogs.com/happyhippy/archive/2011/01/29/1947443.html

第一种 如果线程量很大 ,达到像淘宝这样级别网站 ,则会严重引响性能

第二种 流水号表 有点复杂,还没搞清楚

有没有更好的方法?求高手一针见血!

Mark1997的主页 Mark1997 | 初学一级 | 园豆:147
提问于:2012-11-06 10:26
< >
分享
所有回答(8)
0

加锁即可

Qlin | 园豆:2403 (老鸟四级) | 2012-11-06 10:41
0

键值流水号,我觉得已经很简单了,而且非常适合做大并发的情况。建议使用键值流水号

方外老和尚 | 园豆:361 (菜鸟二级) | 2012-11-06 10:47
0

流水号。设定主键自增长

sym_cn | 园豆:798 (小虾三级) | 2012-11-06 10:47
0

用自增长,交给数据库处理。像淘宝这种应该是分布式了

田林九村 | 园豆:2367 (老鸟四级) | 2012-11-06 10:53
0

等你的项目到达taobao的级别再看吧。

字段冲突?

要不给这个字段来个唯一性约束?

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 11:19
0

用自增长,交给数据库处理。像淘宝这种应该是分布式了

jason2013 | 园豆:1998 (小虾三级) | 2012-11-06 11:23
0

你查的第二种方法写得过于复杂,属于标题党,如果只看标题“使用键值表实现通用流水号”,那么这个表就应该只有两个列——KEY和VALUE,列KEY是主键列,列VALUE是int类型的,最大值一般为9999,超过用代码自动清零。编写一个存储过程,每次根据KEY查找下一个可用的VALUE值,一条简单的SQL即可实现。

秦楼东 | 园豆:913 (小虾三级) | 2012-11-06 12:06

哈,标题党

支持(0) 反对(0) Mark1997 | 园豆:147 (初学一级) | 2012-11-06 16:12
0

有的东西你实现功能即可,效率并发是由架构去解决的,这样说你不一定能理解

az235 | 园豆:8483 (大侠五级) | 2012-11-07 10:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册