每个人之间的真正差异是什么?
我认为auto inc很容易被黑客攻击
Uuid在有多个记录的查询中比自动增量慢,但它有很大的不同吗?
答案 0 :(得分:3)
从关系模型
的角度来看,主键非常重要PK越小越好。这就是数字 PK最好的原因。
如果你担心它很容易“破解”,你可以添加一个额外的UUID作为自然键
这就是我在几个项目中看到的,它就像一个魅力。
答案 1 :(得分:1)
一些想法:
答案 2 :(得分:0)
增量ID本身并不“易于破解”,它只是提供了在使用大随机ID时被遮挡(但并非完全隐藏)的入口点。仍然需要严格执行和可利用的软件才能产生真正的危险。正如您在地址栏中的URL中所看到的,此站点使用增量ID而没有任何问题。
除了安全性之外,当您不希望用户轻松猜出其他(尽管是公共的)内容的网址时,随机唯一ID有时会有所帮助。例如,在房地产网站上,您可能不希望提供在ID中“上下”的可能性,查看竞争对手的条目,即使他们可以通过搜索找到它们。有点阻碍可能是一件好事。
为什么不同时使用?一种数字自动增量键,用于索引和关系的速度;外部访问的随机UID。
答案 3 :(得分:0)
照顾PK列的LENGTH ... UUID和GUID非常长...字符串。 INT或甚至BIGINT自动上链列可以在更小的空间内确保唯一性。
请注意,自动启动列在表管理方面存在一些问题。如果截断/删除创建表,则很难维护自动增量。 另外,MySQL中只允许一个自动增量列用于单个表。
如果您的数据允许,请使用从数据中派生的某种HASH进行索引和性能。