zoukankan      html  css  js  c++  java
  • 自增ID算法snowflake(雪花)

        在数据库主键设计上,比较常见的方法是采用自增ID(1开始,每次加1)和生成GUID。生成GUID的方式虽然简单,但是由于采用的是无意义的字符串,推测会在数据量增大时造成访问过慢,在基础互联网的系统设计中都不推荐采用。自增ID的方法虽然比较适合大数据量的场景,当时由于自增ID是按照顺序增加的,数据记录都是可以根据ID号进行推测出来,对于一些数据敏感的场景,不建议采用

        最近在一篇文章中看到P2P网站处理订单流水号的思路还不错。该平台设计时希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。Twitter 的 Snowflake 算法解决了这种需求。在流水号服务中采用了这种算法。

       snowflake算法的好处有两点:一是纯数字,二是整体上来说是按时间顺序的。

    Scala版详见开源项目https://github.com/twitter/snowflake
    Python版详见开源项目https://github.com/erans/pysnowflake
    C#版详见开源项目https://github.com/ccollie/snowflake-net

  • 相关阅读:
    单词统计
    第十周学习进度
    个人课程总结
    构建之法阅读笔记03
    构建之法阅读笔记02
    构建之法阅读笔记01
    第十六周学习报告
    计算最长英语单词链
    第十五周学习报告
    用户体验评价
  • 原文地址:https://www.cnblogs.com/lilunjia/p/7109739.html
Copyright © 2011-2022 走看看