![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jesteście w stanie mi wytłumaczyć dlaczego zapytanie grupujące na tebeli z polem varchar jest wykonywana 18x szybciej niż na tej samej tabeli, tylko że pole varchar zostało zamienione na tinytext.
Nie chodzi tu o rozmiar tabeli, bo oba te typy nic w rozmiarze nie zmieniają. O co chodzi?! Tabela 4.000.000 wierszy, 300MB |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
pole varchar ma stałą długość pola typu text są polami o zmiennej długości (chodzi o długość ciągu przechowywanego przez bazę) stąd też łatwiej bazie skakać po rekordach o równych długościach (zawsze taki sam przeskok) niż po rekordach o różnej długości (najpierw wyciąga informacje o długości pola, odczytuje dane a następnie może przeskoczyć dalej)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 19:03 |