![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 24.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() 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? |
|
|
![]()
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).
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 24.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
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 ? ![]() |
|
|
![]()
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?
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 24.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
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." |
|
|
![]()
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. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:59 |