-
За съхраняване на самия регистрационен ID е по-добре да използвате колона VARBINARY(4096). По-ефективно е от TEXT, ако кодирате регистрационния идентификатор с ефективен набор от знаци (като UTF-8).
-
За ефективно търсене все пак трябва да имате допълнителна индексирана хеш колона (BINARY(32)) - ние използваме
SHA-256
дайджест алгоритъм за получаване на 32-байтовия хеш от регистрационния идентификатор. Хеш колоната не трябва да е уникална. Сблъсъците трябва да са много редки и дори да възникнат, вашата заявка ще ви даде малък брой регистрационни идентификатори, които споделят един и същ хеш, така че няма да навреди на производителността да тествате във вашия Java код кой от тях (ако има такъв) всъщност съвпада с регистрационния идентификатор, който търсите. -
Ако решите да съхранявате уникален идентификатор на устройството и да търсите въз основа на него, предлагам да зададете свой собствен идентификатор на всяко устройство. Този идентификатор може да бъде (например) BIGINT (дълго в java). Можете да изисквате приложението да извика вашия сървър, за да получи уникален идентификатор при първото му стартиране. Можете да го съхраните във външно хранилище на устройството, така че устройство, на което приложението е деинсталирано и след това повторно инсталирано, пак ще има същия идентификатор.