Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment stocker de manière unique un identifiant d'enregistrement GCM dans MySQL

  • Pour stocker l'ID d'enregistrement lui-même, il est préférable d'utiliser la colonne VARBINARY(4096). C'est plus efficace que TEXT si vous encodez l'ID d'enregistrement avec un jeu de caractères efficace (comme UTF-8).

  • Pour une recherche efficace, vous devriez toujours avoir une colonne de hachage indexée supplémentaire (BINARY(32)) - nous utilisons le SHA-256 algorithme digest pour obtenir le hachage de 32 octets à partir de l'ID d'enregistrement. La colonne de hachage n'a pas besoin d'être unique. Les collisions devraient être très rares, et même si elles se produisent, votre requête vous donnera un petit nombre d'identifiants d'enregistrement qui partagent le même hachage, donc cela ne nuira pas aux performances de tester dans votre code Java lequel d'entre eux (le cas échéant) correspond en fait à l'ID d'enregistrement que vous recherchez.

  • Si vous choisissez de stocker un identifiant d'appareil unique et de rechercher en fonction de celui-ci, je vous suggère d'attribuer votre propre identifiant à chaque appareil. Cet identifiant peut être (par exemple) BIGINT (long en java). Vous pouvez exiger que l'application appelle votre serveur pour obtenir un identifiant unique lors de son premier lancement. Vous pouvez le stocker sur le stockage externe de l'appareil, de sorte qu'un appareil sur lequel l'application est désinstallée puis réinstallée aura toujours le même identifiant.