我有一个网站项目,我必须在 postgres 表中处理数千或数万个对象。
最初我的网址是:
example.com/object/{ID}/{TEXT SLUG}/
其中 {ID} 只是一个与我的表中的串行主键相对应的整数,{TEXT SLUG} 除了出于 SEO 友好的原因之外实际上什么都不做。
现在,我想隐藏我的 {ID},因为有人可能只是使用一些简单的脚本请求所有增加 {ID} 的对象并简单地重建我的数据库,我想将 url 设计得更现代
example.com/object/{TEXT SLUG}/
现在,如果我直接使用 {TEXT SLUG} 寻址表,它不会比以前使用 {ID} 简单寻址慢得多,即使使用一些索引,尤其是当它变大时(我希望在 40K 范围内最多 60K 行,但表中目前只有 2K)?
我想使用一些轻量级的散列算法来散列 {TEXT SLUG} 并使用散列对表进行寻址,并添加一个具有散列副本的附加列。由于 Postgres 有 4 或 8 字节整数,我很想使用一些轻量级的 128 位散列算法(例如 Murmurhash),我是否正在考虑使用散列 slug 的想法,还是有什么我不知道的?