![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
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 |
|
|
![]() |
![]()
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ć.
|
|
|
![]()
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 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Dałem bigint(16) i smiga ok. Rozmiar powiększył się dla tej samej bazy o ok 30%.
Ps co to Unsigned? |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:41 |