Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wydajność, dwa różne przypadki
zzeus
post 5.11.2008, 11:03:32
Post #1





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Witam.
może ktoś z was przeprowadził kiedyś jakieś testy na wydajność, w takim przypadku:
mamy w tabeli np. produkty, i każdy produkt jest opisany przez słowa kluczowe
a. lepiej trzymac te słowa kluczowe w polu text i przeszukiwać za pomocą like
b. zrobić tablice słownikową ze słowami kluczowymi, i dodatkową tablice która będzie łączyć produkt ze słowami kluczowymi

Które rozwiązanie lepsze, gorsze i dlaczego ?

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
bregovic
post 5.11.2008, 11:33:05
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Testów, co prawda, nie przeprowadzałem, ale mogę tobie powiedzieć że jeśli masz małą ilość produktów to nie ma znaczenia. Jeśli natomiast masz ich trochę więcej, to HABTM które opisujesz sprawdzi się lepiej - jest bardziej elastyczne (możesz szukać w dwie strony) i odpada ci ten paskudny LIKE.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
zzeus
post 5.11.2008, 11:40:43
Post #3





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Ilość produktów będzie duża, liczona w tysiącach. Z tym że jeśli wybiorę opcję b to tabela łącząca będzie ogromna, kilkadziesiąt tysięcy rekordów ...


--------------------
Go to the top of the page
+Quote Post
nospor
post 5.11.2008, 11:54:44
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
tabela łącząca będzie ogromna, kilkadziesiąt tysięcy rekordów

To nie jest "ogromna". To jest małe pierdniecie dla bazy winksmiley.jpg

Oczywiscie ze opcja b - elastyczna, latwe wyszukiwanie, itp.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bregovic
post 5.11.2008, 11:56:44
Post #5





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Nawet jeśli tabela łącząca będzie ogromna, będzie wciąż zawierała tylko dwie kolumny - tag_id i product_id. Linkowanie poprzez taką tabelę jest dość proste, i można to załatwić bez szczególnie skomplikowanego SQL. Ale to tak na prawdę zależy od twojego użycia tagów. Jeśli np chcesz szukać produktów poprzez tagi, to IMO dość prosty SELECT będzie szybszy niż LIKE na tysiącach rekordów.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
zzeus
post 5.11.2008, 12:03:26
Post #6





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Cytat(nospor @ 5.11.2008, 11:54:44 ) *
To nie jest "ogromna". To jest małe pierdniecie dla bazy winksmiley.jpg

Oczywiscie ze opcja b - elastyczna, latwe wyszukiwanie, itp.


No może z tym słowem "ogromna" troszkę przesadziłem 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: 14.08.2025 - 02:13