MYSQL数据库并发查询求教 MYSQL数据库下,当用户想添加记录到A表时,想先从A表查询当前最大的字段如ID,等等,+1后存入新记录,问题是多用户同时的时候,会出现同时读取当时最大ID为5,+1后都为6。如何解决这种问题,是锁表还是怎么样,不要自增不要自增,因为不是ID,只是某一列, 求大佬教下,新手不太懂。希望大佬能说的详细点~最好能贴个代码之类的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以使用redis事务的WATCH监听,如果事务监听的同时其他人也在修改此记录则被打断当你更新的时候把此条记录放到redis去更新,配合事务监听 脏读啊?可以redis队列解决,也可以使用乐关锁解决,具体操作为:查询到ID字段当前的最大值之后保存到变量$ver,插入新记录的时候如果 'update A set ID = ' . $ver +1 . ', ID = ' . $ver + 1 . 'where ID = ' . $ver;这个条件如果为真则插入成功,否则提示系统繁忙这么一个思路 也可以,看平时并发量,我自己觉得锁表会从查询到更新才释放锁,是会有点影响效率,如果并发量很大的话可以尝试用redis监听,都可以去改谁先修改谁正确,事务打断重新修改,如果并发量很大可能要考虑阻塞的情况,如果你们业务量不大我觉得锁表就够了 遇到一个奇怪问题,长字符串写入CSV被截断 [讨论]象QQ,MSN那种聊天工具PHP可不可以做啊 请教PHP如何获得上传文件的后缀名??? 用soapclient 这个返回的数组是什么意思 简单正则问题 各位帮忙看一下!我在本机上测试PHP程序时为何出现下列提示呢? 访客记数器问题,大家帮帮忙. 请熟悉通达oa朋友们进来一下 php如何提取xml元素的内容 php计算文件的相对路径函数 有对应索引的情况下还是报错 Notice: Undefined index: qrcode php 数据库数组数据提取
当你更新的时候把此条记录放到redis去更新,配合事务监听
也可以,看平时并发量,我自己觉得锁表会从查询到更新才释放锁,是会有点影响效率,如果并发量很大的话可以尝试用redis监听,都可以去改谁先修改谁正确,事务打断重新修改,如果并发量很大可能要考虑阻塞的情况,如果你们业务量不大我觉得锁表就够了