idgo 是一个利用 MySQL 批量生成 ID 的 ID 生成器, 主要有以下特点:
每次通过事务批量取 ID,性能较高,且不会对 MySQL 造成压力.
当 ID 生成器服务崩溃后,可以继续生成有效 ID,避免了 ID 回绕的风险.
业界已经有利于 MySQL 生成 ID 的方案,都是通过:
REPLACE INTO Tickets64 (stub) VALUES ('a');
SELECT LAST_INSERT_ID();
这种方式生成 ID 的弊端就是每生成一个 ID 都需要查询一下 MySQL,当 ID 生成过快时会对 MySQL 造成很大的压力. 这正是我写这个 lib 库的原因.
感兴趣的可以看看:
https://github.com/flike/idgo