分库分表之后主键id解决方案有哪些

这篇具有很好参考价值的文章主要介绍了分库分表之后主键id解决方案有哪些。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、UUID:

不适合作为主键,因为太长了,并且无序不可读,查询效率低。比较适合用于生成唯一的名字的标示比如文件的名字。

2、数据库自增 id :

两台数据库分别设置不同步长,生成不重复ID的策略来实现高可用。这种方式生成的 id 有序,但是需要独立部署数据库实例,成本高,还会有性能瓶颈。

3、利用 redis 生成 id :

性能比较好,灵活方便,不依赖于数据库。但是,引入了新的组件造成系统更加复杂,可用性降低,编码更加复杂,增加了系统成本。

4、Twitter的snowflake算法 :

Github 地址:https://github.com/twitter-archive/snowflake。

5、美团的Leaf分布式ID生成系统 :

Leaf 是美团开源的分布式ID生成器,能保证全局唯一性、趋势递增、单调递增、信息安全,里面也提到了几种分布式方案的对比,但也需要依赖关系数据库、Zookeeper等中间件。
美团技术团队文章:https://tech.meituan.com/2017/04/21/mt-leaf.html文章来源地址https://www.toymoban.com/news/detail-860617.html

到了这里,关于分库分表之后主键id解决方案有哪些的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL分库分表的方式有哪些

    目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而来,比如电商系统

    2024年04月12日
    浏览(56)
  • 一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案

    导航: 【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/黑马旅游/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码-CSDN博客 目录 一、分库分表基本概念 二、分库分表的场景和核心思想 三、分库分表具体步骤 3.1 分库分表的原则:能不分就

    2024年02月03日
    浏览(37)
  • Java如何实现分库分表

    在大型互联网系统中,大部分都会选择mysql作为业务数据存储。一般来说,mysql单表行数超过500万行或者单表容量超过2GB,查询效率就会随着数据量的增长而下降。这个时候,就需要对表进行拆分。 那么应该怎么拆分呢? 通常有两种拆分方法,垂直拆分和水平拆分。 先说垂直

    2024年02月09日
    浏览(52)
  • 分布式ID解决方案对比

    在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,比如在对一个订单表进行了分库分表操作,这时候数据库的自增ID显然不能作为某个订单的唯一标识。除此之外还有其他分布式场景对分布式ID的一些要求: 趋势递增:  由于多数RDBMS使用B-tree的数据结构来存储索

    2024年02月04日
    浏览(26)
  • 常用的分布式ID解决方案原理解析

    目录 前言 一:分布式ID的使用场景 二:分布式ID设计的技术指标 三:常见的分布式ID生成策略 3.1 UUID 3.2 数据库生成 3.3 数据库的多主模式 3.4 号段模式 3.5 雪花算法      分布式ID的生成是分布式系统中非常核心的基础性模块,其常用于在分布式环境下作为数据或消息的唯一

    2024年02月07日
    浏览(26)
  • 【业务功能篇73】分布式ID解决方案

    1. 基于UUID 2. 基于DB数据库多种模式 ( 自增主键、 segment) 3. 基于Redis 4. 基于ZK、ETCD 5. 基于SnowFlake 6. 美团Leaf (DB-Segment 、 zk+SnowFlake) 7. 百度uid-generator () UUID: UUID 长度 128bit , 32 个 16 进制字符,占用存储空间多,且生成的 ID 是无序的 ; 对于 InnoDB 这种聚集主键类型的引擎来说,

    2024年02月12日
    浏览(34)
  • Java中支持分库分表的框架/组件/中间件简介

    列举一些比较常见的,简单介绍一下: sharding-jdbc(当当) TSharding(蘑菇街) Atlas(奇虎360) Cobar(阿里巴巴) MyCAT(基于Cobar) TDDL(淘宝) Vitess(谷歌) 首先,第一个,可能也是最常见最常用的,Sharding-JDBC,这个是最早的名字,现在已经发展成为ShardingSphere,生态,详细

    2024年02月10日
    浏览(31)
  • hutool工具包 中的雪花算法Snowflake 获取Long类型id 或者String 类型id(全局唯一id解决方案)

    1.引入pom依赖 2.源码 3. 注入 使用 4优缺点:

    2024年02月14日
    浏览(32)
  • 智慧社区解决方案核心要点有哪些 智慧社区解决方案

    智慧社区解决方案核心要点有哪些 智慧社区解决方案 城市的发展意味着生产与消费的集中化与规模化,这些改变带来了生产效率的提高。而智慧社区解决方案核心要点有哪些呢?下面跟着小编一起去了解下! 智慧社区解决方案核心要点有哪些:数字化 大数据、云计算等新技

    2024年02月05日
    浏览(48)
  • 掌握MySQL分库分表(六)解决主键重复问题--Snowflake雪花算法

    单库下⼀般使用Mysql自增ID,但是分库分表后,会造成不同分片上的数据表主键会重复 需求:性能强劲、全局唯一、防止恶意用户规矩id的规则来获取数据 利用自增id, 设置不同的⾃增步长: auto_increment_offset 、 auto-increment-increment 缺点: 依靠数据库系统的功能实现,但是未来

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包