Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jakie pole mysql dla długich numerów telefonów
www.aukcje.fm
post
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 4.05.2010

Ostrzeżenie: (20%)
X----


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 (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


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ć.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


PK Unsigned BigInt wystarczy. Nie ma co się bać. Nie ma też co patrzeć na rozmiar

Ten post edytował Pyton_000 28.11.2015, 16:24:29
Go to the top of the page
+Quote Post
www.aukcje.fm
post
Post #4





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 4.05.2010

Ostrzeżenie: (20%)
X----


Dałem bigint(16) i smiga ok. Rozmiar powiększył się dla tej samej bazy o ok 30%.
Ps co to Unsigned?
Go to the top of the page
+Quote Post
Fred1485
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 13:03