推广 热搜: 广场  Java  app  Word  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

mysql怎么添加序列号 VB编程能干什么?就业前景如何?

   2023-04-27 企业服务招财猫80
核心提示:VB编程能干什么?就业前景如何?我用VB6开发的erp运行了0年了解析分布式主键MongoDBObjectId,可以作为Mysql主键吗?可以的。全局唯一ID有些同学可能会有疑问,MySQL数据库本身

VB编程能干什么?就业前景如何?

我用VB6开发的erp运行了0年了

解析分布式主键MongoDBObjectId,可以作为Mysql主键吗?

可以的。

全局唯一ID有些同学可能会有疑问,MySQL数据库本身就有自增长的主键,为什么还需要别的组件协助生成呢?

如果是单台MySQL数据库的话,当然是用本身的自增长序列就可以了,但是如果我们做了分库分表之后呢?比如用户表userTable数据量达到了4000万,单表有些吃力,我们将userTable拆成两张表保存到两个MySQL数据库中;这时候如果再使用数据库本身的自增序列,倒是也不会有错,每一个表内的主键不会重复,但是表和表比较的话,主键ID可能会发生重复;这时候就需要使用组件或者算法,生成全局唯一ID了。

MongoDBObjectIdMongoDB的ObjectId,也是可以用于全局唯一ID的。

{_id:ObjectId(5d47ca7528021724ac19f745)}

MongoDB的ObjectId共占12个字节,其中:

3.2之前的版本(包括3.2):4字节时间戳3字节机器标识符(机器ID)2字节进程ID3字节随机计数器;

3.2之后版本:4字节时间戳5字节随机值3字节递增计数器;

其中时间戳字节可以保证毫秒级唯一,节机器标识符考虑到了分布式,字节进程ID保证了同一台服务器运行多个实例时的唯一性,字节递增计数器保证了同一个时间点内ID的唯一性。

优缺点

不管是老版本还是新版本,MongoDB的ObjectId至少都可以保证集群内的唯一,我们可以搭建一个全局唯一ID生成的服务,利用MongoDB生成ObjectId并对外提供服务(MongoDB的各语言驱动都实现了ObjectId的生成算法)。

优点:MongoDB的性能不错,可以使用集群部署,保证其高可用;ID内自带一些含义,比如时间戳,必要的时候可以进行反解;

缺点:和数据库一样,需要引入对应的组件/软件,增加了系统的复杂度;最关键的是,这两种方案都意味着生成全局唯一ID的系统(服务),会成为一个单点,在软件架构中,单独就意味着风险;如果这个服务出现问题,那么所有依赖于这个服务的系统都会崩溃掉。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8