如何将APN/FCM的推送设备令牌存储在带有索引的MySQL数据库中



我想在mySQL数据库中存储APNS设备令牌和FCM repistrationID。我想要包含令牌的列上的索引,因为我将使用它执行查找,我希望该表很大(数百万行(。

我了解,对APN或FCM使用的设备令牌的大小没有实际限制。APN的文档明确指出,不要对大小做出假设(尽管它似乎是64个字符(。因此,我正计划将其存储为MySQL数据库中的LongText字段。但是,mySQL阻止了大于767个字符的索引的创建。

这是我正在考虑的选项:

  1. 使用APN/FCM令牌的当前格式在我存储令牌的字段上设置最大长度,以便我可以使用index
  2. 在LongText字段上使用前缀索引(不确定这将是如何效率的?(

以下哪种选项似乎是更好的方法?您能想到任何其他选择吗?

为此,请不要使用clob(xxxtext(数据类型。它们的存储和索引效率非常低。这是一个设备令牌,因此,即使未指定长度,也不会是数十个千数(中文字(,更不用说许多兆字节(longtext(。

看起来这些目前是十六进制数字的64个字符(0123456789ABCDEF(。因此,要成为未来的证据,您可以使用

 token VARCHAR(256) COLLATE latin1_bin NOT NULL

作为列定义。256,现在尺寸的四倍应该足够一段时间(这是很多移动设备; IPv6地址空间将首先填充(。而且,Latin1字符集和垃圾箱的整理将使有效的索引查找。

相关内容

  • 没有找到相关文章

最新更新