-
Do przechowywania samego identyfikatora rejestracji lepiej jest użyć kolumny VARBINARY(4096). Jest bardziej wydajny niż TEKST, jeśli zakodujesz identyfikator rejestracji za pomocą wydajnego zestawu znaków (takiego jak UTF-8).
-
Aby wyszukiwanie było efektywne, powinieneś mieć jeszcze dodatkową indeksowaną kolumnę hash (BINARY(32)) - używamy
SHA-256
algorytm skrótu, aby uzyskać 32-bajtowy skrót z identyfikatora rejestracji. Kolumna mieszająca nie musi być unikatowa. Kolizje powinny być bardzo rzadkie, a nawet jeśli wystąpią, zapytanie da ci niewielką liczbę identyfikatorów rejestracji, które mają ten sam skrót, więc nie zaszkodzi wydajności testowanie w kodzie Java, który z nich (jeśli w ogóle) faktycznie pasuje do identyfikatora rejestracji, którego szukasz. -
Jeśli zdecydujesz się na przechowywanie unikalnego identyfikatora urządzenia i wyszukiwanie na jego podstawie, sugeruję przypisanie własnego identyfikatora do każdego urządzenia. Tym identyfikatorem może być (na przykład) BIGINT (długi w java). Możesz wymagać, aby aplikacja wywoływała Twój serwer w celu uzyskania unikalnego identyfikatora przy pierwszym uruchomieniu. Możesz przechowywać go w zewnętrznej pamięci urządzenia, dzięki czemu urządzenie, na którym aplikacja zostanie odinstalowana, a następnie ponownie zainstalowana, będzie nadal mieć ten sam identyfikator.