MySQL中的UUDI / GUID主键

我们有一个应用程序(IONIC 2电话应用程序前端,ASP.Net Core 2.0 Web Api后端和MySql Server)。

手机应用程序需要能够在离线模式下工作,并且能够在互联网连接时同步(向上和向下)。 我立即意识到MySql数据库中的自动递增int主键会成为一个问题,并且考虑改为使用GUID / UUID主键。 但我担心表现。 我有两个问题:

  • 在MySql中存储UUID字段的最佳方式是什么? CHAR(36)? 据我所见,MySql没有专用的UUID数据类型? (我正在使用MySql Server 5.6.30)

  • 不要把它作为主键是不是一个好主意,因此它不是唯一的? 这当然会加快性能? 而UUID几乎可以保证是唯一的,所以没有必要让MySql Server浪费时间来检查这个...

  • 谢谢


    没有完整的细节,我会建议以下的一般工作流程:

  • 用户添加新产品
  • 这会导致将记录写入本地SQLite数据库
  • 维护一个名为sync的列,用于跟踪本地记录是否被推送到服务器
  • 请注意,应用程序显示的产品是缓存的服务器数据和尚未同步的SQLite数据的总和
  • 当应用程序执行同步时,它会先推出新产品,然后将这些SQLite记录标记为已同步
  • 当它拉取最新的目录时,它将返回新产品及其在远程MySQL数据库中显示的实际唯一ID
  • 如果应用程序再次脱机,那么只需回到第一步并执行相同的操作

  • 这里的基本想法是专注于尽可能保持一个真理版本。 不要将您的应用程序分配给服务器一无所知的产品。 首先,分配这样的ID是否有意义,然后用户决定删除产品而不同步?

    链接地址: http://www.djcxy.com/p/91463.html

    上一篇: UUDI/GUID primary key in MySQL

    下一篇: Is it safe to assume a GUID will always be unique?