Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So speichern Sie eine GCM-Registrierungs-ID eindeutig in MySQL

  • Zum Speichern der Registrierungs-ID selbst ist es besser, die Spalte VARBINARY (4096) zu verwenden. Es ist effizienter als TEXT, wenn Sie die Registrierungs-ID mit einem effizienten Zeichensatz (z. B. UTF-8) codieren.

  • Für eine effiziente Suche sollten Sie noch eine zusätzliche indizierte Hash-Spalte (BINARY(32)) haben - wir verwenden den SHA-256 Digest-Algorithmus, um den 32-Byte-Hash aus der Registrierungs-ID zu erhalten. Die Hash-Spalte muss nicht eindeutig sein. Kollisionen sollten sehr selten sein, und selbst wenn sie auftreten, gibt Ihnen Ihre Abfrage eine kleine Anzahl von Registrierungs-IDs mit demselben Hash, sodass es der Leistung nicht schadet, in Ihrem Java-Code zu testen, welche davon (falls vorhanden) tatsächlich mit der gesuchten Registrierungs-ID übereinstimmt.

  • Wenn Sie sich dafür entscheiden, eine eindeutige Geräte-ID zu speichern und danach zu suchen, schlage ich vor, dass Sie jedem Gerät eine eigene Kennung zuweisen. Dieser Bezeichner kann (zum Beispiel) BIGINT (lang in Java) sein. Sie können verlangen, dass die Anwendung Ihren Server aufruft, um beim ersten Start eine eindeutige Kennung zu erhalten. Sie können es auf einem externen Speicher des Geräts speichern, sodass ein Gerät, auf dem die App deinstalliert und dann erneut installiert wird, immer noch dieselbe Kennung hat.