2013-03-04 12 views
14

Jaki typ danych wykorzystuje Facebook do przechowywania ID użytkownika, jaki powinien być ten najlepszy typ danych dla takiej wydajności pola i perspektywy skalowalności.Jaki jest typ użytkownika facebook

Jeśli używa się int 4 bajtów, to myślę, że nie jest wystarczająco duży, jeśli 8 bajtów int, to jak przypisać losowe liczby do każdego użytkownika lub tego samego dla ciągu znaków.

Jaki jest najlepszy sposób nadania użytkownikowi losowego identyfikatora o stałej długości, mając na uwadze skalowalność i wydajność?

Odpowiedz

11

Dobre pytanie. Identyfikatory Facebooka mogą powodować problemy, a także identyfikatory Tweetów. Oba przekraczają 32-bitowy zakres całkowity. W zależności od specyfiki języka programowania i celu (np. Bazy danych, kodu, itp.) Możesz chcieć użyć wartości zmiennoprzecinkowych lub podwójnych, ale z mojego doświadczenia wynika, że ​​rzutowanie ich na ciąg jest zadowalające.

W MySQL, jako oznaczony, podany jest typ danych BIGINT, który jest wystarczająco duży, aby przechowywać te identyfikatory jako liczby. Najtrudniejsza część to czytanie tych wartości i przetwarzanie ich w kodzie programu. Te, które są większe niż maksimum dozwolone przez architekturę systemu/język programowania, spowodują błędy lub zostaną skrócone, co doprowadzi do niespójności.

Jeśli chcesz korzystać z dużych identyfikatorów o stałej długości w MySQL, dobrą praktyką jest użycie typu CHAR i formatu HEX np. lub możesz użyć formatu UUID.

Powiązane problemy