当前位置: 首页 > news >正文

面试问题总结

分开分布的自增主键如何设计?

1.步长设置

根据分表的数量确定步长,每张表设置不同的其实值
假设有3个分片表,可以这样配置:
第一个表:起始值1,步长3,生成序列1、4710...
第二个表:起始值2,步长3,生成序列2、5811...
第三个表:起始值3,步长3,生成序列3、6912..

设置自增步长和起始值

SET @@auto_increment_increment = 3; -- 步长为分片数量
SET @@auto_increment_offset = 1; -- 起始值按分片顺序设

缺点:

1.分片扩容时由于数据分布已经固定,如果重新分片可能会有数据分布不均匀或主键重复问题,需要进行复杂的数据迁移

 

2.UUID

优点:

UUID是36位字符串,优点是本地生产,性能高不占用网络资源

缺点:

缺点是占用空间大,无序会造成数据库写入性能问题,且会造成索引分裂。

 

3.Redis

优点:

性能高,实现简单Redission有专门的API(RIdGenerator)

缺点:

需要依赖Redis中间,会有网络波动或宕机问题,需要单独维护Redis。

 

4.雪花算法

优点:

1.生产时不依赖数据库、完成在内存中生产,呈自增状态,每秒钟可生产百万的自增ID,有时间回拨问题
2.雪花算法的结构:符号位(1位) + 时间戳(41位) +机器标识(10位) +序列号(12位)

雪花算法

 

缺点:

存在时间回拨问题,由于依赖服务器时间,服务器时间回拨可能会造成重复Id。

1.人为修改系统时间。
2.不同机器之间可能存在时差。

 

如何解决时钟回拨问题

1.和上次时钟比较:每次生产新的时钟时和上次记录的最大时钟比较,如何发现有时钟回拨问题,则拒绝生产ID并等待时间追上并告警
2.单独维护时间钟:逻辑时钟保证总是递增,不依赖系统时钟。但需要额外的机制来同步和持久化逻辑时钟。

 

5.美团Leaf

基于步长+雪花算法实现

 

http://www.jsqmd.com/news/34883/

相关文章:

  • Java 开发者福音!JBoltAI 框架让 AI 应用开发效率翻倍
  • JBoltAI 的 Function Call + MCP 集成
  • 甲烷检测仪/氧气检测仪/二氧化碳检测仪/四合一气体检测仪/可燃气体报警器等气体检测仪器生产厂家有哪些?知名品牌厂家推荐
  • 如何去宣传你的游戏
  • 不用自己封装大模型!JBoltAI 框架为 Java AI 开发提供稳定 AI 应用支撑
  • 财务报销 + 智慧采购!JBoltAI 框架为 Java 企业打造场景化 AI 应用窗口
  • 向量库 + Embedding 模型!JBoltAI 框架帮 Java 团队搭建高精度 AI 应用知识库
  • 动态加载so库
  • AI元人文:价值权衡范式——环境、价值体系与规则体系的辩证统一
  • 2025年高活性氢氧化钙厂家权威推荐榜单:熟石灰/高比表氢氧化钙/氢氧化钙颗粒源头厂家精选
  • 行业方案 + VIP 支持!JBoltAI 框架全程帮 Java 团队搞定 AI 应用落地难题
  • 老Java系统想加AI能力?JBoltAI框架帮改造,AI应用无缝衔接旧系统
  • 嵌入式,liunx内核开发编写笔记 谢双元2023-2024成长历程
  • 《ESP32-S3使用指南—IDF版 V1.6》第四十六章 SD卡模拟U盘实验
  • 2025年广州ai广告服务权威推荐榜单:广告运营/互联网广告/代运营服务精选
  • 省4-6个月研发成本!Java AI开发选JBoltAI框架,企业级AI应用极速上线
  • 2025年打包箱房制造企业权威推荐榜单:隔离房/创意集装箱/彩钢房源头厂家精选
  • 2025年知名的冷拉型钢杭州老房装修
  • 2025年管母线厂家综合实力排行榜:全绝缘铜管母线/管型母线/全屏蔽绝缘铜管母线领先厂家精选
  • 2025年6月deepseek排名优化跨平台能力推荐排行榜
  • 2025年M14连接器插座厂家权威推荐榜单:M14焊线式插座/M14成型式针型插头/M14成型连接器插头源头厂家精选
  • 2025年6月生成式引擎优化推荐榜揭晓五强竞逐AI搜索赛道
  • 2025年11月股权融资律师推荐风向:跨域经验成关键
  • 英语_阅读_Robotic_待读
  • 终身授权 + 100% 源码!Java AI 开发选 JBoltAI 框架,AI 应用商用无后顾之忧
  • 2025年生成式引擎优化六月推荐榜全景解析
  • Python+Flask+Prophet 汽车之家二手车框架 逻辑回归 二手车推荐体系 机器学习(逻辑回归+Echarts 源码+文档)✅
  • 2025CSP-JS游记
  • 精美的Vue可视化流程设计器
  • 题解:qoj6537 One, Two, Three