yitter / IdGenerator

💎多语言实现,高性能生成唯一数字ID。 💎优化的雪花算法(SnowFlake)——雪花漂移算法,在缩短ID长度的同时,具备极高瞬时并发处理能力(50W/0.1s)。 💎原生支持 C#/Java/Go/Rust/C/JavaScript/TypeScript/Python/Pascal 多语言,提供其它适用于其它语言的多线程安全调用动态库(FFI)。💎支持容器环境自动扩容(自动注册 WorkerId ),单机或分布式唯一IdGenerator。💎顶尖优化,超强效能。
MIT License
2.64k stars 376 forks source link

可以从id分解出时间和workid吗? #86

Open jianliulin opened 11 months ago

jianliulin commented 11 months ago

可以从id分解出时间和workid吗?

yitter commented 11 months ago

可以,转成二进制后,截取其中的固定位置,就可以反推时间和WorkerId。

jianliulin commented 10 months ago

官方会提供这个功能吗?

yitter commented 10 months ago

可以

leleonwu commented 7 months ago

我也一直希望能出这个功能,这样在查询展示或者存储的时候可以省去很多的时间存储字段,另外还建议额外在YitIdHelper中增加一个方法YitIdHelper.NextId(DateTime aimDatetime),根据指定的时间生成一个Id,场景:比如想查询订单表中某个时间段的数据,这个时候就可以转换成Id来查询,既可以不用单独为时间字段建索引,还可以用Id查,可大幅提高查询效率,希望大大可以早日集成,谢谢啦