Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> FullText index, Czy jest sens stosowania fulltext index bez funkcji match?
armon
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

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


Witam,

Według http://dev.mysql.com/doc/refman/5.1/en/ful...#function_match

aby korzystać w ogóle z FULLtext index musze korzystać z funkcji MATCH.

Rozumiem, że nadanie indeksu fulltext w bazie danych i korzystanie dalej z WHERE / LIKE etc. nie przynosi żadnych innych pozytywnych skutków w przyspieszeniu poszukiwań? Czy jest sens stosowania fulltext index bez funkcji match?

Pytam się bo chce być tego w 100% pewny.

Pozdrawiam
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




FULLTEXT index służy tylko i wyłącznie dla MATCH. Innych elementów wykorzystujących FULLTEXT nie ma.


--------------------
Go to the top of the page
+Quote Post
armon
post
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

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


Cytat(wookieb @ 14.09.2011, 13:51:39 ) *
FULLTEXT index służy tylko i wyłącznie dla MATCH. Innych elementów wykorzystujących FULLTEXT nie ma.


Dzięki za potwierdzenie mojej tezy smile.gif

Swoją drogą znacie może jakieś ciekawe porównania szybkości wykonywania zapytań z LIKE / WHERE i FULLTEXT w zależności od szukanej frazy / konstrukcji bazy / ilości danych?
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Fulltext prawie zawsze będzie szybszy od LIKE (jeżeli szukasz w środku tekstu). Dodatkowo ma większe możliwości (poziom dopasowania itd).


--------------------
Go to the top of the page
+Quote Post
armon
post
Post #5





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

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


Cytat(wookieb @ 14.09.2011, 14:30:09 ) *
Fulltext prawie zawsze będzie szybszy od LIKE (jeżeli szukasz w środku tekstu). Dodatkowo ma większe możliwości (poziom dopasowania itd).


Czyli jeśli w mojej bazie jakieś pole (skonstruowane ze znaków) jest często wyszukiwane, ale rzadko aktualizowane (zmieniane), a chcę zastosować pobieranie dosłowne (WHERE) to najlepiej nadać polu indeks: INDEX albo UNIQE albo PRIMARY KEY.

Natomiast jeśli chcę wyszukiwać coś ze środka to najlepiej zastosować FULLTEXT INDEX, a następnie funkcję MATCH.

Dobrze to rozumiem ? smile.gif
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Po części TAK. Ale co za różnica czy pole jest często zmieniane czy nie?


--------------------
Go to the top of the page
+Quote Post
armon
post
Post #7





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

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


Cytat(wookieb @ 14.09.2011, 14:41:39 ) *
Po części TAK. Ale co za różnica czy pole jest często zmieniane czy nie?

"INSERT and UPDATE statements takes more time on tables having indexes where as SELECT statements become fast on those tables. The reason is that while doing insert or update, database need to insert or update index values as well."
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Tak ale przyrost czasu potrzebny do przebudowania indeksu jest zależny od ilości rekordów w tabeli. Dla małych tabel nie odczujesz dużej różnicy.
Jak konstruujesz wyszukiwarką dla swojego systemu czy coś podobnego to FULLTEXT i tak w większości przypadków da radę. Na nic Ci się zda kombinowanie z zapisywaniem pojedynczych słów w oddzielnej tabeli czy coś.
Najpierw poznaj dokładną zasadę działania FULLTEXT-u a będziesz wiedział kiedy go użyć a kiedy nie.


--------------------
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 Aktualny czas: 21.08.2025 - 09:59