在这种情况下,我有一些经理(大约 150 人)。他们的日常工作之一是生成 50 个(常量)授权码(6-8 位数字),这些授权码与他们的 ID 一起存储在 db 中。如果使用了任何授权代码,则该代码被标记为已使用,并且触发器会在它们 15 天前并已使用时将其删除。
在我的表中,我将授权码设置为唯一键。我生成一个随机数然后查询数据库是否存在我生成另一个或者我保存它。
除了我检查数据库中是否存在数字的逻辑之外,一切都很好。截至目前,有超过 1090083 个待处理的授权代码,此往返 + 检查造成了严重延迟。由于这些授权码正在流通,我们无法撤销它,并且在当前负载下,它需要一些时间才能找到新号码。
我需要以不同的逻辑来实现它,无论已使用的随机数的数量如何,执行速度都应该很低。
我的表设计如下
slno(授权增量)|| auth_code (随机码) || auth_by (创建者) || 使用过(1=使用过/0=未使用过)