3

用MySQL实现发号器

 3 years ago
source link: https://blogread.cn/it/article/2020?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
您现在的位置首页 --> MySQL --> 用MySQL实现发号器

用MySQL实现发号器

浏览:2812次  出处信息

    问题:用MySQL实现发号器功能,确保每次取到的ID号都是唯一的

    实现:下面是一个大致的思路,抛个砖,欢迎回帖。

    根据号段大小,决定是否分成多个表,每个表事先填充各个不同的号段。

    每个应用端取号时,设置事务隔离级别为:REPEATABLE READ,并且采用下面的方式读取数据

以下是代码片段:
SELECT `ID` FROM `ID_RANGE_XX` ORDER BY ID LIMIT 1 FOR UPDATE

    在上述情境中,只要选择某个ID号,那么其他终端也在读取该号时,会产生锁等待,而不会发生ID号被重用的情况。

    考虑到并发的问题,建议增加分表数量,每次循环或随机从分表中读取数据,降低对单个表的并发请求。

觉得文章有用?立即:

和朋友一起 共学习 共进步!

建议继续学习:

  1. 超级BT+无聊的订单号(或唯一编号)生成方法-_-    (阅读:3559)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
Loading...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK