Używam int (255) w mysql jako mój identyfikator. Czy to wystarczająco długo? Jeśli mam około 1 000 000 rekordów ... Dziękuję.Jaki jest numer MAX, jeśli przechowuję int (255) w MySQL?
Odpowiedz
Coś prawdopodobnie po prostu zamienia to na int(11)
dla ciebie. Ponieważ nie można mieć 255 widocznych cyfr w numerze int
, maksymalną wartością będzie 2147483647
.
Jeśli potrzebujesz więcej, możesz ustawić to ustawienie jako niepodpisane: , since I'm assuming you have no negative ids and then you can have up to
4294967295`.
Jeśli kiedykolwiek będziesz mieć więcej niż 4 miliardy rekordów (bardzo mało prawdopodobne, jeśli masz teraz 1 milion), możesz zamiast tego użyć numeru bigint
, który umożliwia przechowywanie numerów do 18446744073709551615
za niewielką opłatą więcej miejsca do przechowywania oczywiście.
Jeśli niezapiszony, od 0 do 4 294 967 295, więc jest to więcej niż eough.
Więcej informacji in mysql docs.
identyfikacyjne są zazwyczaj unsigned ... Więc ... – Deele
@Deele: docs (* te, które związane *) stwierdzają, że liczba całkowita jest podpisany domyślnie i że UNSIGNED jest opcjonalny (a nie standardowe) – gbn
@ gbn, czy trudno ci było przeczytać pierwsze dwa słowa w mojej odpowiedzi? – Deele
-2147483648 do 2147483647, jak na docs za podpisanym wartości 32-bitowej liczby całkowitej
255 jest tylko wyświetlanie szerokości i nie wpływają na zakres wartości
STORAGE INT
w mysql
zastosowanie 4 bajtów i zakres od -2147483648 do 2147483647. Jeśli używasz unsigned int, zakres wynosi 0 do 4294967295.
Zobacz this blog.
SELECT ~0 as max_bigint_unsigned
, ~0 >> 32 AS max_int_unsigned
, ~0 >> 40 AS max_mediumint_unsigned
, ~0 >> 48 AS max_smallint_unsigned
, ~0 >> 56 AS max_tinyint_unsigned
, ~0 >> 1 AS max_bigint_signed
, ~0 >> 33 AS max_int_signed
, ~0 >> 41 AS max_mediumint_signed
, ~0 >> 49 AS max_smallint_signed
, ~0 >> 57 AS max_tinyint_signed
\G
*************************** 1. row ***************************
max_bigint_unsigned: 18446744073709551615
max_int_unsigned: 4294967295
max_mediumint_unsigned: 16777215
max_smallint_unsigned: 65535
max_tinyint_unsigned: 255
max_bigint_signed: 9223372036854775807
max_int_signed: 2147483647
max_mediumint_signed: 8388607
max_smallint_signed: 32767
max_tinyint_signed: 127
1 row in set (0.00 sec)
- 1. Varchar (255) do Varchar (MAX)
- 2. Numer Mysql int (11) poza zakresem
- 3. Jaki jest glif numer jedenasty?
- 4. Wybierz MAX (ID) mysql
- 5. Jaki jest cel "{}" w "nowy int [5] {};"?
- 6. Jaki jest cel Array.GetLowerBound (int)?
- 7. SELECT MAX (... niczego w PHP/MySQL
- 8. MySQL MAX od SUM
- 9. Jaki jest maksymalny rozmiar int w PHP?
- 10. Pobiera długość max dopuszczalne w kolumnie, mysql
- 11. Konwertuj numer w tekście tekstowym na int
- 12. Międzynarodowy numer telefonu max i min?
- 13. Numer Zmień obrotowymi Mysql
- 14. Numer referencyjny MySQL Workbench
- 15. int do napisu w mysql
- 16. Decimal VS Int w MySQL?
- 17. W C++, jeśli rzut jest wyrażeniem, jaki jest jego typ?
- 18. Mysql medium int vs int performance
- 19. Jaki jest limit auto_increment (integer) w mysql
- 20. MySQL: bigint Vs int
- 21. Integer dosłowne przepełnienia jeśli jest przechowywany w „INT”
- 22. MySQL INT rozumieniu
- 23. Określ numer portu w Emacs sql-mysql
- 24. Jaka jest różnica między typami łańcuchów VARCHAR (255) i TINYTEXT w MySQL?
- 25. jQuery: set min max wejścia w typie opcja numer
- 26. MySQL: dlaczego varchar (254), a nie varchar (255)?
- 27. Jaka jest różnica między int i integer w MySQL 5.0?
- 28. Jaki jest znak # (ostry, numer, funt, hash) używany w Ruby?
- 29. rzucić krótkie int, jeśli blok
- 30. Chrome/HTML5: numer typu wejścia nieprzestrzegający atrybutu max?
oznacza to, że typ 255 jest bezużyteczny? – DNB5brims
Tak, żadna liczba całkowita nie będzie wyświetlana jako 255 znaków. Najdłuższy to (11), który wystarcza dla symbolu '-' i 10 cyfr. Jeśli używasz nieprzypisanego int, możesz równie dobrze ustawić na int (10) – Paulpro