Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie podobnych słów z bazy 3 mln rekordów
Forum PHP.pl > Forum > PHP
stopros
Witam,

Mam baze 3 mln słów, chce wyciagnac jak najszybciej sie da slowa podobne, konczace się na 3 ostatnie wpisane litery np: %ący

kod uzyty SELECT * FROM `slowa` where slowo like '%ący'

Teraz trwa to 3 sekundy, czy da się jakos usprawnic tę prace, aby to szybciej dzialalo?


Dziekuje
ghost1511
Index założony na kolumnie?
stopros
tak, index jest.
Pyton_000
Index w takim przpadku Ci nic nie da. Indeksy nie działają jeżeli w LIKE masz % na początku stringu.

Jedynie może pomóc FULLTEXT Index i składnia MATCH() ... AGAINST
stopros
dzieki potestuje.

Jakby ktos mial jeszcze jakies sugestie to prosze napisac.
phpion
Jeśli zawsze szukasz po 3 ostatnich literach to może dodać nową kolumnę zawierającą właśnie 3 ostatnie litery ze słowa. Wówczas mógłbyś założyć indeks na to pole i wyszukiwać z dokładnym dopasowaniem ( = ).
maly_swd
http://pl.wikipedia.org/wiki/N-gram
http://www.beldzio.com/czy-chodzilo-ci-o-%...6-czyli-n-gramy

To może być dla Ciebie dobre rozwiązanie.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.