V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zzzhan
V2EX  ›  程序员

有关 ID 生成策略的探讨

  •  
  •   zzzhan · 2016-06-09 23:16:24 +08:00 · 3028 次点击
    这是一个创建于 2882 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚看了主题〈怎样选择 uid 生成策略?〉,讨论有关生成 ID 策略的问题。刚好最近写了一篇〈优雅简洁地实现短 ID 〉 主要就是有关 ID 生成的问题。其策略就是——时间序号+随机数,分别通过 62 进制将其变短。详情可以查看该文章。也在这里跟大家探讨。

    3 条回复    2016-06-10 14:41:22 +08:00
    murmur
        1
    murmur  
       2016-06-09 23:26:18 +08:00
    我其实想问的是 这么长的 ID 如果放到数据库里做主键性能不会受影响么 mongo 我记得用的 id 都要保证放到树的一边保证性能吧
    mrwong
        2
    mrwong  
       2016-06-10 10:47:46 +08:00
    直接 Snowflake ,各种实现都有
    notgod
        3
    notgod  
       2016-06-10 14:41:22 +08:00
    foreach (range('a', 'z') as $letter) {
    echo $letter;
    }

    $string = 'a';
    while ($string != 'aaaaa') {
    echo $string++,PHP_EOL;
    }

    使用 Redis 存储 加个判断
    要多少有多少

    aa ab ac
    什么
    aa ab az a1 a9
    aaa aa1 a11

    这种链接不是更短
    逻辑生成 做全局


    uid 生成是个伪命题
    99%的网站 数据量都不大
    除了大网站 和一些特殊应用 根本用不到这玩意

    所有 CMS 都 N 级 1 2 3 数字 mysql 直接主键自动生成
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1780 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:18 · PVG 00:18 · LAX 09:18 · JFK 12:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.