sql >> Databasteknik >  >> RDS >> Mysql

Hur man lagrar ett unikt GCM-registrerings-id i MySQL

  • För att lagra själva registrerings-ID:t är det bättre att använda kolumnen VARBINARY(4096). Det är mer effektivt än TEXT om du kodar registrerings-ID:t med en effektiv teckenuppsättning (som UTF-8).

  • För effektiv sökning bör du fortfarande ha en extra indexerad hashkolumn (BINARY(32)) - vi använder SHA-256 sammanfattningsalgoritm för att få 32-byte-hash från registrerings-ID:t. Hashkolumnen behöver inte vara unik. Kollisioner bör vara mycket sällsynta, och även om de inträffar kommer din fråga att ge dig ett litet antal registrerings-ID:n som delar samma hash, så det skadar inte prestandan att testa i din Java-kod vilken av dem (om någon) matchar faktiskt registrerings-ID:t du letar efter.

  • Om du väljer att lagra ett unikt enhets-ID och söka baserat på det, föreslår jag att du tilldelar din egen identifierare till varje enhet. Den identifieraren kan vara (till exempel) BIGINT (lång i java). Du kan kräva att applikationen ringer din server för att få en unik identifierare när den startas första gången. Du kan lagra den på enhetens externa lagring, så att en enhet där appen avinstalleras och sedan återinstalleras fortfarande har samma identifierare.




  1. Lagrar Oracle efterföljande nollor för nummerdatatyp?

  2. Hur man reparerar MySQL-databaser och tabeller

  3. WHERE-tillstånd i MySQL med 16 olika frågeexempel

  4. Hur får jag kolumnnamn från en given MySQL-tabell?