Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Co szybsze: int(11) czy int(10) unsigned?
eerie
post 9.03.2020, 13:24:56
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 3.08.2017

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


Witam

Jak w temacie. Jaka deklaracja dla głównego id tabeli jest szybsza i lepsza: int(11) czy int(10) unsigned?

Pozdrawiam
EERIE
Go to the top of the page
+Quote Post
trueblue
post 9.03.2020, 13:41:58
Post #2





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

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


Nie ma znaczenia.
Jedyne ograniczenie SIGNED w przypadku kiedy jest to kolumna autoincrement, to szybsze wyczerpanie możliwych wartości.


--------------------
Go to the top of the page
+Quote Post
viking
post 9.03.2020, 13:46:52
Post #3





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Na początek. Czy rozumiesz co oznacza zapis int(11)?


--------------------
Go to the top of the page
+Quote Post
eerie
post 9.03.2020, 13:49:58
Post #4





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 3.08.2017

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


Kiedyś spotkałem się z opinią, iż deklaracja z unsigned jest wolniejsza. Ale to była pojedyncza opinia i nie jestem peny, czy można zaufać.

EERIE

Cytat(viking @ 9.03.2020, 13:46:52 ) *
Na początek. Czy rozumiesz co oznacza zapis int(11)?

No, int(11) to ze znakiem minus (zarówno dodatnie i ujemne wartości). Przy int(10) unsigned są tylko wartości dodatnie (2 x więcej).

EERIE

Ten post edytował eerie 9.03.2020, 13:51:41
Go to the top of the page
+Quote Post
viking
post 9.03.2020, 13:54:10
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Poczytaj sobie https://dev.mysql.com/doc/refman/8.0/en/integer-types.html oraz co to jest zerofill.


--------------------
Go to the top of the page
+Quote Post
eerie
post 9.03.2020, 14:05:21
Post #6





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 3.08.2017

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


Poczytałem i nie znalazłem nic nowego. Nadal nie mam pewności, która opcja działa szybciej. wink.gif

EERIE
Go to the top of the page
+Quote Post
viking
post 9.03.2020, 14:08:27
Post #7





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Wewnętrznie unsigned nic nie zmienia. To są dalej 4 bajty. Mają taką samą wydajność. Różnią się pojemnością zapisu dla użytkownika.
A co oznacza liczba w nawiasie?


--------------------
Go to the top of the page
+Quote Post
eerie
post 9.03.2020, 14:19:39
Post #8





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 3.08.2017

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


Cytat(viking @ 9.03.2020, 14:08:27 ) *
Wewnętrznie unsigned nic nie zmienia. To są dalej 4 bajty. Mają taką samą wydajność. Różnią się pojemnością zapisu dla użytkownika.

Ktoś mi kiedyś napisał, że ma to wpływ na użycie jakichś tam funkcji haszujących czy coś. Dokładnie nie pamiętam... Więc pytam. wink.gif

Cytat(viking @ 9.03.2020, 14:08:27 ) *
A co oznacza liczba w nawiasie?

Liczbę znaków, jaką chcę maksymalnie użyć, z minusem lub bez. Dobrze mówię? smile.gif

EERIE
Go to the top of the page
+Quote Post
viking
post 9.03.2020, 14:22:26
Post #9





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Mi ktoś kiedyś też coś mówił ale nie pamiętam.
Nie, poczytałeś o zerofill? (który i tak jest deprecated)


--------------------
Go to the top of the page
+Quote Post
eerie
post 9.03.2020, 14:27:28
Post #10





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 3.08.2017

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


No, zerofill wypełnia zerami do liczby w nawiasie. Czemu ma służyć to całe czepialstwo? wink.gif tongue.gif

EERIE
Go to the top of the page
+Quote Post
viking
post 9.03.2020, 14:35:28
Post #11





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Twojej lepszej nauce. Na początku pisałeś że to liczba znaków z minusem lub bez. Teraz już dałeś poprawną odpowiedź. Umiesz też znaleźć w dokumentacji typ liczbowy odpowiedni dla twoich potrzeb. Ja bym tu szukał wydajności bo jeśli wiesz że w najbliższych latach do tabelki wsadzisz n liczb to będzie to szybsze niż wybrać losowy większy typ.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 9.03.2020, 17:36:02
Post #12





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

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


Jeśli Twoja baza zakłada wartości ujemne to bierzesz zwykły, jeśli nie to unsigned.

Wydajność? Nie odczujesz różnicy - gwarantuję
Go to the top of the page
+Quote Post
Tomplus
post 9.03.2020, 18:06:23
Post #13





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


@EERIE
po co się podpisujesz pod każdym postem?

Ja zawsze zakładam wcześniej jak duże liczby mogą być w projekcie i jakie.
Numery ID z definicji są zawsze dodatnie, ale czasami warto zamiast int(11) używać smallint czy mediumint, a wciąż widzę że większość osób stosuje takie typy kolumn jakie dostają domyślnie.
Go to the top of the page
+Quote Post
Pyton_000
post 9.03.2020, 18:13:42
Post #14





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

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


Cytat(Tomplus @ 9.03.2020, 18:06:23 ) *
@EERIE
po co się podpisujesz pod każdym postem?

Ja zawsze zakładam wcześniej jak duże liczby mogą być w projekcie i jakie.
Numery ID z definicji są zawsze dodatnie, ale czasami warto zamiast int(11) używać smallint czy mediumint, a wciąż widzę że większość osób stosuje takie typy kolumn jakie dostają domyślnie.

Jeśli robisz tabelę ze słow nikiem z 100 rekordami to faktycznie nie ma sensu smile.gif
Go to the top of the page
+Quote Post
Tomplus
post 9.03.2020, 21:57:42
Post #15





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Dzisiaj dostałem w spadku stronę, gdzie wpisy na autorskim kodzie są zapisywane do bazy danych, gdzie rekordy id (i nie tylko) mają int(11) - jakie jest prawdopobieństwo zapełnienia wszystkich liczb dla małej strony?
Kod strony z przed 3-4 lat.
Go to the top of the page
+Quote Post
eerie
post 10.03.2020, 08:39:39
Post #16





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 3.08.2017

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


Dzięki wielkie wszystkim za pomoc. Wyprowadziliście mnie z błędu. Już w 2004 r. robiłem dobrze. Przed rokiem ktoś napisał mi na forum, że z unsigned działa wolniej, i niepotrzebnie pozmieniałem w projekcie. Dobrze, że zapytałem ponownie. smile.gif
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: 19.04.2024 - 04:13