gpt4 book ai didi

mysql - 如何在具有索引的 MySQL 数据库中存储 APNS/FCM 的推送设备 token ?

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

我想将 APNS 设备 token 和 FCM 注册 ID 存储在 MySQL 数据库中。我想要包含该标记的列上的索引,因为我将使用它执行查找,并且我预计该表会相当大(数百万行)。

据我了解,APNS 或 FCM 使用的设备 token 的大小没有真正的限制。 APNS 的文档明确指出不要对大小做出假设(尽管它看起来是 64 个字符)。因此,我计划将其作为长文本字段存储在 MySQL 数据库中。但是,MySQL 禁止创建超过 767 个字符的索引。

以下是我正在考虑的选项:

  1. 使用 APNS/FCM token 的当前格式设置存储 token 的字段的最大长度,以便我可以使用索引
  2. 在长文本字段上使用前缀索引(不确定这效率有多低?)

以下哪个选项似乎是解决此问题的更好方法?你能想到其他选择吗?

最佳答案

请不要为此使用 CLOB (xxxTEXT) 数据类型。它们的存储和索引效率极低。这是一个设备 token ,因此即使未指定其长度,它也不会是几十千字节(MEDIUMTEXT),更不用说很多兆字节(LONGTEXT)了。

目前看来这些是 64 个十六进制数字字符 (0123456789abcdef)。因此,为了面向 future ,您可以使用

 token VARCHAR(256) COLLATE latin1_bin NOT NULL

作为列定义。 256 是当前大小的四倍,应该足够使用一段时间(这是很多移动设备;IPV6 地址空间将首先填满)。而且,latin1 字符集和 bin 排序规则将有助于高效的索引查找。

关于mysql - 如何在具有索引的 MySQL 数据库中存储 APNS/FCM 的推送设备 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56940738/

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