网站流量大小对网站有什么影响,wordpress改变链接地址,查看商标是否被注册官网,wordpress浮动小人【技巧】并发读取Mysql数据保证读取到的数据不重复 使用场景: 并发场景下, 保证不获取到重复的数据
思路: 先通过 MYSQL锁 去占位打标识,然后再去取数据 相当于几个人抢蛋糕, A先把蛋糕打上记号 蛋糕是A的, 然后再慢慢吃 表结构
表 t_userid
name
val
used_flag 是否使用…【技巧】并发读取Mysql数据保证读取到的数据不重复 使用场景: 并发场景下, 保证不获取到重复的数据
思路: 先通过 MYSQL锁 去占位打标识,然后再去取数据 相当于几个人抢蛋糕, A先把蛋糕打上记号 蛋糕是A的, 然后再慢慢吃 表结构
表 t_userid
name
val
used_flag 是否使用过
lock_token 锁标识默认0
lock_token_time 加锁时间 方便超时之后释放锁 1 加锁
-- 生成随机加锁token 123456
UPDATE t_user u
SET u.lock_token 123456, u.lock_token_time NOW()WHERE u.id IN (
SELECT id FROM (
SELECTid
FROMt_user
WHERE
-- 未被使用过used_flag 0
-- 未被加锁AND lock_token 0
-- 这里限制每次取多少条数据, 取决于业务LIMIT 10
-- 上锁FOR UPDATE) a
) 2 获取
SELECT * FROM t_user u
WHERE -- 未被使用过used_flag 0
-- 指定的token锁AND lock_token 123456 补充, 可以通过lock_token_time判断 如果超时的 可以去释放锁 比如超时半个小时等