Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Czemu niektóre serwisy używają stringa jako id
konrados
post 1.05.2014, 09:05:40
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Hej,

Czemu np. taki youtube używa stringa zamiast int w celu określenia id dokumentu. Np: takie coś (nie wiem czemu na stronie głównej youtube):http://www.youtube.com/watch?v=qGOjFBgyhYw

Czemu takie dziwne coś, zamiast po prostu integer? Przecież indeksowanie wg. wartości numerycznej jest dużo szybsze.

Wiele innych serwisów też tak robi. Dlaczego?
Go to the top of the page
+Quote Post
irmidjusz
post 1.05.2014, 09:22:25
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


Powody są różne, przykładowo:
- może to być zapis liczby w systemie o podstawie 52 (26 podstawowych liter małych i dużych) a nie dziesiętnym. To pozwala zapisać duże liczby znacznie mniejszą ilością znaków,
- id jest trudniejsze do odczytu (tylko w sumie po co?)
- to może być jakiś hash (aby nie dało się łatwo zgadnąć innego)
- to może być jakaś zakodowana informacja; jeden string oprócz id dostarcza dodatkowych informacji, np. statystycznych czy dowolnych innych
- i różne inne pomysły, zależnie od potrzeb

W przypadku youtube, sprawdź ten adres, który podałeś, że jak zmienisz ostatnią literę w identyfikatorze, nadal zobaczysz ten sam film.
(qGOjFBgyhYw, qGOjFBgyhYx, qGOjFBgyhYy, qGOjFBgyhYz).

Jeśli chodzi o wyszukiwanie, to przy ogromnych ilościach danych i tak jedna baza tego nie obsłuży, więc się np. bazy sharduje i taki identyfikator będzie też zawierał informacje gdzie (w której bazie) szukać, itp. Bazy mają ograniczenia na maksymalną liczbę przechowywanych rekordów, więc jak masz więcej danych do przechowywania, to jedna baza nie wystarczy, klucze by się w końcu skończyły (ale i tak ze względu na wydajność trzeba rozkładać dane między oddzielne bazy wcześniej).

Ten post edytował irmidjusz 1.05.2014, 09:25:23


--------------------
there is much to be learned
Go to the top of the page
+Quote Post
konrados
post 1.05.2014, 09:40:48
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Dzięki, kliknąłem "pomógł", bo to rozjaśniło sytuację. Ale mam jedno jeszcze pytanie odnośnie ostatniego akapitu - chyba istnieją lepsze metody na dywersyfikację baz danych i w ogóle serwerów niż takie zabawy z id? Nigdy tak naprawdę nie dotykałem tego tematu, ale z tego co wiem to istnieją jakieś zautomatyzowane rozwiązania.

Poza tym, np. w mysql istnieje typ bigint, który ma max wartość 9223372036854775807 więc chyba troska o "skończenie się kluczy" wydaje się bezsasadna, czyż nie?

Jeszcze raz dzięki!
Go to the top of the page
+Quote Post
Turson
post 1.05.2014, 10:20:38
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


To pewnie nie id tak naprawdę, a jakiś token
Go to the top of the page
+Quote Post
trueblue
post 1.05.2014, 10:27:35
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/questions/830596/...1638761#1638761
http://stackoverflow.com/questions/830596/...s/830678#830678


--------------------
Go to the top of the page
+Quote Post
konrados
post 1.05.2014, 10:31:51
Post #6





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Cytat


Dzięki, ale to:
They use this ID to prevent people from farming/spamming the videos by simply incrementing a number

Po co właściwie ktoś miałby to robić?
Go to the top of the page
+Quote Post
trueblue
post 1.05.2014, 10:35:20
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Żeby zwiększyć obciążenie serwera YT.


--------------------
Go to the top of the page
+Quote Post
konrados
post 1.05.2014, 10:52:28
Post #8





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


OK, dziękuję wszystkim.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 18:24