您正在构建一个 URL 缩短器。
每次有人创建短链接时,您都会生成一个随机代码并检查它是否已存在于数据库中。
对于 1,000 个 URL,这很好 – 查询需要一毫秒,索引很小,没有人注意到。
在 1 亿个 URL 中,您生成的代码会更频繁地发生冲突(生日悖论),每次冲突都会触发另一个数据库往返行程,并且这些往返行程会在高吞吐量下累加。
你之所以慢并不是因为你的代码很糟糕——而是因为你向数据库询问了一个它不需要回答的问题。
检查“abc123”——它在集合中吗。
来源:Dev.to

AI技术 · 深度资讯 · 前沿观察
您正在构建一个 URL 缩短器。
每次有人创建短链接时,您都会生成一个随机代码并检查它是否已存在于数据库中。
对于 1,000 个 URL,这很好 – 查询需要一毫秒,索引很小,没有人注意到。
在 1 亿个 URL 中,您生成的代码会更频繁地发生冲突(生日悖论),每次冲突都会触发另一个数据库往返行程,并且这些往返行程会在高吞吐量下累加。
你之所以慢并不是因为你的代码很糟糕——而是因为你向数据库询问了一个它不需要回答的问题。
检查“abc123”——它在集合中吗。
来源:Dev.to
上一篇
下一篇
AI技术 · 深度资讯 · 前沿观察。专注科技、AI、互联网领域的深度报道与前沿资讯。
Access over the years of investigative journalism and breaking reports