Trawka
12.04.2008, 09:45:46
Witam
O ile wydajniejsze jest wyszukiwanie rekordu po id w stosunku do wyszukiwania po stringu (np takim: vib_Z_roku_na_rok_lepiej_07_04_2008_16_21_40) Jaki to ma wplyw na calkowite obciazenie serwera??
dr_bonzo
12.04.2008, 11:10:20
1. zakladam ze ID to integer, wtedy: integer to tylko 4 bajty, a string, powiedzmy ze 255 znakow (w przyblizeniu tyle samo bajtow), no to oczywiste chyba jest ze szybcie porowna sie 4 niz 255 bajty, nie? przy czym dla stringow mozesz miec rozne collations, ktore zmieniaja kolejnosc sortowania, co dalej wydluza czas porownywania.
2. zalezy czy masz indexy na tych kolumnach, bez nich , przy duzej liczbie danych wyszukiwanie jest baaardzo wolne i jest wtedy nieistotne jaki typ danych masz
SongoQ
12.04.2008, 19:52:03
Dodatkowo id jako PK jest o wiele szybsze podczas dodawania rekordow (chodzi o budowanie indeksu). Sam klucz PK juz o tym mowi ze jest to o wiele wydajniejsze.
Sedziwoj
12.04.2008, 23:49:09
Taki tsearch2 na gin (czy gits, jest pewna różnica) pokazuje, że można dość szybko szukać po słowach, ale indexy swoje zajmują.
Ogólnie po to jest PK aby go używać, więc normalnie po ludzku się robi, szukasz odpowiednich rekordów przez wyszukanie po kolumnie np. varchar i zapamiętujesz ich id jeśli musisz gdzieś tę informację pchnąć. (jeśli takie wyszukanie występuje często dorzucasz index na tą kolumnę)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.