(1)设置主键自增为何不可取
这样的话,数据库本身是单点,不可拆库,因为id会重复。

(2)依赖数据库自增机制达到全局ID唯一
使用如下语句:
REPLACE INTO Tickets64 (stub) VALUES ('a'); 
SELECT LAST_INSERT_ID();
这样可以保证全局ID唯一,但这个Tickets64表依旧是个单点。

(3)依赖数据库自增机制达到全局ID唯一并消除单点
在2的基础上,部署两个(多个)数据库实例,
设置自增步长为2(多个则为实例数),即auto-increment-increment = 2
设置auto-increment-offset分别为1,2.....
这样第一台数据库服务器的自增id为 1 3 5 7 9
第二台为2 4 6 8 10

(4)解决每次请求全局ID都读库写库压力过大的问题
比如第一次启动业务服务,会请求一个唯一id为3559
如果是2、3的方法,则id为3559,这样每次都请求数据库,对数据库压力比较大
可以用3559 * 65536(举个例子,并不一定是65536)+ 内存自增变量来作为id
当内存自增变量到达65535时,从数据库重新获取一个自增id
这样即使有多台业务服务器,id也不会重复:
第一台 3559 * 65536 + 1,2,3.....65535
第二台 3560 * 65536 + 1,2,3.....65535
然后第一台到65535了,换一个数据库自增id,这时候可能是3561 * 65536 + 1,2,3....

转载于:https://www.cnblogs.com/lupeng2010/p/6628679.html

解决数据库自增ID的问题相关推荐

  1. 弃用数据库自增ID,曝光一下我自己用到的解决方法之---终结篇

    我写这篇随笔的目的旨在 澄清我在上一篇随笔 "弃用数据库自增ID,曝光一下我自己用到的解决方法" 中的一些事实与看法,同时,我将继续在并发的问题的作题, 我将在原来的存储过程上得用 ...

  2. 8年面试官问到:数据库自增 ID 用完了会咋样?

    有主键 如果你的表有主键,并且把主键设置为自增. 在 MySQL 中,一般会把主键设置成 int 型.而 MySQL 中 int 型占用 4 个字节,作为有符号位的话范围就是 [-2^31,2^31- ...

  3. MySQL分布式ID_分布式唯一ID系列(3)——数据库自增ID机制适合做分布式ID吗

    数据库自增ID机制原理介绍 在分布式里面,数据库的自增ID机制的主要原理是:数据库自增ID和mysql数据库的replace_into()函数实现的.这里的replace数据库自增ID和mysql数据 ...

  4. mysql数据库自增_mysql数据库自增id用法大全

    在mysql数据库中,使用auto_increment 字段来辅助为自增列赋值. 显示有关msyql自增ID的相关配置信息: 复制代码 代码示例: SHOW VARIABLES LIKE 'auto_ ...

  5. 修改自增主键初始化_数据库自增ID用完了会怎么样?

    看到这个问题,我想起当初玩魔兽世界的时候,25H难度的脑残吼的血量已经超过了21亿,所以那时候副本的BOSS都设计成了转阶段.回血的模式,因为魔兽的血量是int型,不能超过2^32大小. 估计暴雪的设 ...

  6. mysql自动增长id 溢出_MySQL表自增id溢出的故障复盘怎么解决 MySQL表自增id溢出的故障复盘解决方法...

    MySQL表自增id溢出的故障复盘如何解决?本篇文章小编给大家分享一下MySQL表自增id溢出的故障复盘解决方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 问题:MyS ...

  7. mysql id会用完吗_数据库自增ID用完了会怎样?

    起步 对DBA来说这应该是送分题吧.而我是突如其来的想法想测试下的.正常来说程序员是不会关心自增ID用完的情况的. 以 Mysql 为例,它支持的最大的整型是 unsigned bigint,上限是 ...

  8. 数据库自增id没有从0开始

    /**如有错误,敬请指正**/ 在把本地数据库中的表移植到远程数据库时,遇到一个情况,由于原先的表中有数据,所以只是复制表结构输出为SQL文件,但是在远程,运行这个SQL文件,添加新的数据时,发现自增 ...

  9. repositoryitemlookupedit根据每行的id绑定数据_一种根据数据库自增ID生成唯一ID的解决方案...

    在我们的开发过程中,经常会遇到ID生成的问题,那么这里就介绍一种解决方案,注意这里只适合混淆ID规则,也就是说生成的ID没有任何规则,不适用于订单ID. 一般有序自增主键的ID,极易被爬虫抓取数据,作 ...

最新文章

  1. 抖音右上角一个小黄点是什么_抖音用户更喜欢什么样的人设?抖音怎么塑造出一个受人喜欢的人设?抖音人设...
  2. CTFshow 命令执行 web48
  3. 图像中的灰度共生矩阵
  4. Xshell的一些实用技巧
  5. SAP Cloud SDK for JavaScript 概述
  6. SAP Cloud Application Programming CatalogService 默认的路径
  7. ActiveMQ在windows下启动失败解决方案
  8. 学习yield《转》
  9. PXC 安装 for 5.7
  10. 01_决策树案例一:鸢尾花数据分类
  11. 樊登读书搞定读后感_樊登读书人生定位读后感
  12. pyodbc 测试连接 SQL Server 数据库
  13. 用 CAShapeLayer、毛玻璃镂空效果创建加载动画
  14. virtual reality(虚拟现实)
  15. arduino IED2.0实现Serial.println打印结果
  16. 开放耳机有什么优缺点,推荐几款不错的开放式耳机
  17. 国内首个《超融合技术白皮书》出炉,新华三携手产业联盟成员推动全新生态建设
  18. 联想Y400怎么样在插入鼠标时自动禁用触摸板
  19. 镇魔曲手游服务器维护,网易《镇魔曲》手游好玩到紧急追开6台服务器?
  20. java舞会配对程序_舞会心动男/女生配对问题

热门文章

  1. 计算机控制技术曹立学答案,高等学校电子与电气工程及自动化专业十二五规划教材:计算机控制技术...
  2. spring boot中@ResponseBody等注解的作用与区别
  3. 进阶学习(3.4) Builder Pattern 建造者模式
  4. 四川网络推广浅析新站要如何更快的获得好排名?
  5. 网络推广外包——网络推广外包专员浅析网站流量应该如何提升?
  6. 浅析网站内链优化如何营造良好的内链生态环境?
  7. 网站开发绝不像你看到的那么简单!
  8. vbs画动态爱心代码_前端必看之如何用CSS3画一个八卦和爱心
  9. cesium面积计算_cesium-长度测量和面积测量
  10. docker 删除容器_Docker (二) Windows10专业版安装教程