gpt4 book ai didi

mysql - 从 MySQL 中的自动递增索引更改

转载 作者:行者123 更新时间:2023-11-29 06:10:10 25 4
gpt4 key购买 nike

我有一个笔记应用程序,用户可以在其中创建笔记,并将笔记同步到包含 noteId 列的数据库,该列是一个 auto_incrementing 字段。问题是,当用户在未连接到互联网时创建 not 时,事情会变得有点复杂,因此我必须分配一个临时 noteId,并执行一系列与层次结构相关的其他操作注释系统结构。

所以我正在考虑一起删除 auto_increment 选项,并让本地设备(iPhone/iPad - Objective C)创建一个可以在数据库作为 noteId。这样,如果用户离线并稍后重新连接,同步将像发送唯一 ID 一样简单。

两个问题:

  1. 这对性能有何影响?假设数据库中有 500,000 个笔记,用户对其其中一个笔记进行了更改。使用 auto_incrementing 字段,我想系统会更容易找到 256,000 的 noteId,但是对于一般的 noteId 系统,找到 88689034 的 noteId 会是一个更长的过程吗?
  2. 在用户设备上本地为笔记生成唯一 ID 的可能性有哪些?时间戳?

最佳答案

生成唯一 ID 的最常见方法之一是使用 UUID/GUID。 MySQL 有 UUID 函数,.NET 有 GUID 函数,并且很容易编写一个函数来用 PHP 或 JavaScript 创建一个函数...您无需指定客户端应用程序使用的语言。;) 但是,是的,它绝对可以影响性能。提高 UUID 性能的最佳方法是将十六进制字符串转换为二进制数并将其存储在多个 INT 列中。

编辑:只是想到了一个更好的主意...为什么您甚至需要在设备上生成 ID?难道您不能只创建注释,然后当设备连接时,将注释发送到服务器并让服务器在此时生成 ID 吗?也许在设备上您会生成一个临时 ID 供设备跟踪它,但真实 ID 仍将由服务器生成。

关于mysql - 从 MySQL 中的自动递增索引更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9501761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com