Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jakie pole mysql dla długich numerów telefonów
Forum PHP.pl > Forum > Bazy danych
www.aukcje.fm
Witam,

Kilka milionów rekordów może więcej, numery rozmaite od 4 cyfrowych sms po 16 cyfrowe typu 0032787823787239.
Teraz klucz podstawowy na numery, unikalny.

Jaki rodzaj pola będzie najlepszy do przechpowywania tych danych?
Aby zajmowały jak najmniej, wyszukiwanie było najszybsze.


INT odpada bo maxymalny numer telefonu to 4294967295 smile.gif
BigINT ma 8 bitów (max numer to 18446744073709551615)

Może zwykły VARHAR lub lepiej CHAR który może do 255 znaków i jest Binarny?

Może jakiś inny? Aby zajmował jak najmniej, wyszukiwał w trybie where `numer` = 1234567890123 najszybciej i obsługiwał index unikatowy najlepiej primary.

Char jednak nie jest odpowiedni, zawias bazy i wzrost wialkości bazy ponad 2 x
viking
Nie napisałeś nawet jaka baza, pewnie mysql. char jest stałoznakowy więc zawsze dopełni brakujące znaki do końca, varchar tyle ile potrzebujesz. Indeksy możesz na dowolne kolumny zakładać.
Pyton_000
PK Unsigned BigInt wystarczy. Nie ma co się bać. Nie ma też co patrzeć na rozmiar
www.aukcje.fm
Dałem bigint(16) i smiga ok. Rozmiar powiększył się dla tej samej bazy o ok 30%.
Ps co to Unsigned?
Fred1485
Cytat
All integer types can have an optional (nonstandard) attribute UNSIGNED. Unsigned type can be used to permit only nonnegative numbers in a column or when you need a larger upper numeric range for the column. For example, if an INT column is UNSIGNED, the size of the column's range is the same but its endpoints shift from -2147483648 and 2147483647 up to 0 and 4294967295.


https://dev.mysql.com/doc/refman/5.5/en/num...attributes.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.