【发布时间】:2019-10-28 04:08:43
【问题描述】:
我有一项维护用户数据的服务。我可以将 userId 作为 1、2、3 等作为整数,其他服务可以调用我们的帐户吗?还是将 UUID 之类的字符串用作 id 是一种更好的做法?
【问题讨论】:
-
string会降低性能。
标签: soa software-design
我有一项维护用户数据的服务。我可以将 userId 作为 1、2、3 等作为整数,其他服务可以调用我们的帐户吗?还是将 UUID 之类的字符串用作 id 是一种更好的做法?
【问题讨论】:
string 会降低性能。
标签: soa software-design
关于性能,使用字符串作为ID确实会影响性能,因为在查询和分析数据时,匹配两个数值会比匹配两个字符串更快,但是您需要考虑解决方案(此处不限于DB ) 需要支持缩放。
这意味着在某些时候您可能需要迁移此数据库或将其与其他数据库组合,或者可能跨多个服务器分发到此数据库,因此您需要更可靠的东西,您应该在其中查找 GUID(例如https://blog.codinghorror.com/primary-keys-ids-versus-guids/)。
TLDR:如果您打算将其保留为仅用于此服务的小型数据库,请使用数值,如果您打算稍后扩展项目,请考虑更复杂的内容。
【讨论】: