点击上方" 悟能之能 ",选择" 设为星标 " 回复" 面经 "获取面试资料 ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个单独的机制来负责生成唯一ID,生成出来的ID也可以叫做 分布式ID ,或 全局ID 。下面来分析各个生成分布式ID的机制。 数据库自增ID 第一种方案仍然还是基于数据库的自增ID,需要单独使用一个数据库实例,在这个实例中新建一个单独的表: 表结构如下: CREATE DATABASE `SEQID`; CREATE TABLE SEQID.SEQUENCE_ID ( id bigint ( 20 ) unsigned NOT NULL auto_increment, stub char ( 10 ) NOT NULL default '', PRIMARY KEY (id) , UNIQUE KEY stub (stub) ) ENGINE =MyISAM; 可以使用下面的语句生成并获取到一个自增ID begin