首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将APNS/FCM的推送设备令牌存储在带有索引的MySQL数据库中?

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

Stack Overflow用户
提问于 2019-07-08 18:34:53
回答 1查看 584关注 0票数 1

我想将APNS设备令牌和FCM registrationID存储在MySQL数据库中。我希望在包含令牌的列上建立索引,因为我将使用该索引来执行查找,并且我希望该表相当大(数百万行)。

据我所知,APNS或FCM使用的设备令牌的大小没有真正的限制。APNS的文档明确声明不对大小进行假设(尽管它似乎是64个字符)。因此,我计划将它作为一个长文本字段存储在MySQL数据库中。但是,MySQL阻止创建大于767个字符的索引。

以下是我所考虑的选择:

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

这些选项中的哪一种似乎是更好的解决方法?你能想出其他的选择吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-08 19:20:10

请不要为此使用CLOB (xxxTEXT)数据类型。它们在存储和索引方面效率很低。这是一个设备令牌,所以即使没有指定它的长度,它也不会是几十千字节(MEDIUMTEXT),更不用说很多兆字节(LONGTEXT)了。

看起来,这些目前是64个字符的十六进制数字(0123456789abc hex )。所以,要成为未来的证据,你可以用

代码语言:javascript
复制
 token VARCHAR(256) COLLATE latin1_bin NOT NULL

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56940738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档