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

广西建设教育网站网络营销方式分析与对比

广西建设教育网站,网络营销方式分析与对比,wordpress主题 卢松松,网络广告案例以及分析MySQL分布式架构主键ID的设置方法 雪花算法#xff08;Snowflake#xff09; 原理#xff1a;雪花算法是一种生成分布式唯一ID的算法。它由64位二进制数组成#xff0c;结构如下#xff1a;1位符号位#xff08;固定为0#xff09; 41位时间戳#xff08;表示从一个固… MySQL分布式架构主键ID的设置方法 雪花算法Snowflake 原理雪花算法是一种生成分布式唯一ID的算法。它由64位二进制数组成结构如下1位符号位固定为0 41位时间戳表示从一个固定时间开始到现在的毫秒数 10位工作机器ID可以用来区分不同的机器或节点 12位序列号在同一毫秒内对不同的ID请求进行区分。优点生成的ID是趋势递增的具有唯一性并且在分布式系统中各个节点可以独立生成不需要依赖中心节点协调。同时由于包含时间戳信息在一定程度上可以根据ID判断生成的先后顺序。示例实现以Java为例public class SnowflakeIdGenerator {// 起始的时间戳private static final long START_STAMP 1480166465631L;// 每一部分占用的位数private static final long SEQUENCE_BIT 12;private static final long MACHINE_BIT 10;private static final long TIMESTAMP_BIT 41;// 每一部分的最大值private static final long MAX_SEQUENCE -1L ^ (-1L SEQUENCE_BIT);private static final long MAX_MACHINE_NUM -1L ^ (-1L MACHINE_BIT);// 每一部分向左的位移private static final long MACHINE_LEFT SEQUENCE_BIT;private static final long TIMESTAMP_LEFT SEQUENCE_BIT MACHINE_BIT;private long machineId;private long sequence 0L;private long lastStamp -1L;public SnowflakeIdGenerator(long machineId) {if (machineId MAX_MACHINE_NUM || machineId 0) {throw new IllegalArgumentException(machineId cant be greater than MAX_MACHINE_NUM or less than 0);}this.machineId machineId;}public synchronized long nextId() {long currStamp getNewStamp();if (currStamp lastStamp) {throw new RuntimeException(Clock moved backwards. Refusing to generate id);}if (currStamp lastStamp) {sequence (sequence 1) MAX_SEQUENCE;if (sequence 0L) {currStamp getNextStamp(lastStamp);}} else {sequence 0L;}lastStamp currStamp;return (currStamp - START_STAMP) TIMESTAMP_LEFT| machineId MACHINE_LEFT| sequence;}private long getNextStamp(long lastStamp) {long stamp getNewStamp();while (stamp lastStamp) {stamp getNewStamp();}return stamp;}private long getNewStamp() {return System.currentTimeMillis();} }基于数据库的全局唯一ID生成器 原理利用数据库的特性来生成唯一ID。例如在MySQL中可以创建一个专门用于生成ID的表表中只有一个字段如id字段每次需要生成ID时通过对这个表进行插入操作插入一条空记录然后获取这个新插入记录的自增ID值再将这个记录删除。这样就可以得到一个全局唯一的ID。优点简单直接能保证唯一性。缺点性能较差因为涉及到数据库的插入和删除操作并且需要频繁访问数据库不适合高并发场景。 不能使用自增ID的原因在分布式架构下 数据合并问题在分布式环境中可能存在多个数据库实例或者节点。如果每个节点都使用自增ID当需要将这些节点的数据合并到一起时就会出现ID冲突的问题。例如节点A生成的自增ID范围是1 - 1000节点B生成的自增ID范围是1 - 1000当合并数据时就会有很多相同的ID导致数据混乱。水平扩展受限自增ID依赖于单个数据库实例的顺序生成机制。在分布式架构下如果要进行水平扩展添加新的数据库节点时难以保证新节点生成的ID与现有节点的ID不冲突且能保持全局唯一。 不能使用UUID的原因在某些情况下 存储空间较大UUID是128位的通用唯一识别码相比其他的ID生成方式如32位或64位的雪花算法生成的IDUUID占用的存储空间更大。在数据库中如果大量使用UUID作为主键会增加数据库的存储成本。性能问题UUID是无序的在数据库中尤其是在使用基于B - Tree结构如MySQL的InnoDB存储引擎的索引时无序的UUID会导致索引树的频繁分裂和重组。这是因为新插入的UUID可能随机分布在索引树的各个位置而不像自增ID那样顺序插入。这种频繁的分裂和重组会降低数据库的插入性能并且随着数据量的增加这种性能影响会更加明显。
http://www.hkea.cn/news/14312422/

相关文章:

  • 网站技术团队网页浏览器哪个好
  • 个人网站设计说明手机分销网站公司
  • 设计本网站是用什么做的官方小程序开发
  • 建设专业网站哪家技术好wordpress中文摘要
  • 建站哪个网站好网络培训心得体会5篇
  • 国际教育机构网站建设开发方案免费申请靓号
  • 衡阳退休职工做面膜网站sem和seo是什么职位
  • 建设银行无锡分行招聘网站wordpress快速发布
  • 建设银行嘉兴分行网站首页最好看免费观看高清视频了
  • 做网站怎么在图片上加文字购物网站建设实训心得体会
  • 湛江免费建站公司网站关键词优化费用
  • 垂直网站科技企业网站设计
  • 广告传媒建设网站中山网站建设哪家便宜
  • 网站方案组成要素重庆app定制
  • 电子商务公司网站怎么建如何制作网络教程
  • 做板子焊接的网站的公司名字门户网站建设和内容保障工作
  • 网站模板红黑太原工业学院教务网络管理系统
  • 公司网站建设费入什么科目营销型网站和普通网站
  • 360免费建站软仵下载网站怎样运营
  • 开发购物网站描述优改网logo设计
  • 大型网站解决方案设计云南做网站费用
  • 个人做地方民生网站网站商城html模板
  • 医院美容网站建设电销客户资源怎么找
  • 淘宝网官方网站电脑版网站公司建设公司
  • 网站开发包括哪些网站建设难点分析
  • 湖南网站建设优化凡科互动小程序怎么解封
  • 南昌制作网站的公司哪家好权重高的博客网站
  • 怎么看网站室哪做的企业宣传报道模板范文
  • 网站设计技术方案建设主管部门网站
  • 呼和浩特市网站建设徐州市建设局网站