当我只能使用数据库 ID 时,为什么要对 URL 缩短器使用长算法
Why use a long algorith for URL shorteners when I can just use a DB ID
我看到的设计URL缩短的例子都是建议先在数据库中创建一个顺序ID列,然后使用这个数据库生成的ID转换后得到缩短的URL以 base 62 为例。我的问题是,为什么不直接使用数据库生成的 ID 作为缩短的 ID?
例如,如果我将 URL 保存在数据库 www.google.com 中,而数据库为其生成的 ID 为 348,那么为什么不将其用作缩短的 URL?例如位.ly/348
比方说,您正在配置您的系统以容纳 90 亿个 url(估计 1.8 billion web sites in 2018,考虑到每个网站平均 5 个 url)。假设您将使用 (a-z, A-Z, 0-9)
对缩短的 URL 进行编码。如果您将 x
称为表示 90 亿个 URL 的最小字符数,那么将是满足 x^62 > 9*10^9
的最小整数。
Log (9*10^9) to the base 62 = 6
因此,您将需要 6 个字符才能唯一标识所有 60 亿个 url。
我看到的设计URL缩短的例子都是建议先在数据库中创建一个顺序ID列,然后使用这个数据库生成的ID转换后得到缩短的URL以 base 62 为例。我的问题是,为什么不直接使用数据库生成的 ID 作为缩短的 ID?
例如,如果我将 URL 保存在数据库 www.google.com 中,而数据库为其生成的 ID 为 348,那么为什么不将其用作缩短的 URL?例如位.ly/348
比方说,您正在配置您的系统以容纳 90 亿个 url(估计 1.8 billion web sites in 2018,考虑到每个网站平均 5 个 url)。假设您将使用 (a-z, A-Z, 0-9)
对缩短的 URL 进行编码。如果您将 x
称为表示 90 亿个 URL 的最小字符数,那么将是满足 x^62 > 9*10^9
的最小整数。
Log (9*10^9) to the base 62 = 6
因此,您将需要 6 个字符才能唯一标识所有 60 亿个 url。