Mam takie pytanie. Otóż wykorzystuję jednego z pluginów jQuery jako autosuggesta. Przykład ze strony tego plugina jes oparty na rozwiązaniu pobrania wszystkich rekordów z danej tabeli a następnie przelecenie po nich w pętli szukjąc za pomoca strpos co akurat u mnie w skrócie wyglądało by tak:
<?php $documents = $classDocuments->dbGetDocuments(); foreach ($documents as $item) { if (strpos(strtolower($item['nr']), $searchPhrase) !== false or strpos(strtolower($item['title']), $searchPhrase) !== false) { } } ?>
przeszukuję po dwóch polach: po numerze i tytule.
Więc to jest pierwsze rozwiązanie. Natomiast ja bardziej się skłaniam do wyszukania odpowiadających fraz już przez samo zapytanie bazy czyli rozwiązanie jak poniżej w metodzie dbGetDocuments().
<?php ...... "d.nr like '%".$search['search_phrase']."%' or d.title like '%".$search['search_phrase']."%'" ...... ?>
No i teraz pytanie któro z rozwiązań może być wydajniejsze. Zakładamy że baza to mysql, ilość rekordów tudno orzec ale załózmy np do 5000, oba pola typu varchar pewnie indeksowane, typ normal, wyszukwianie możliwe po wpisaniu przynajmniej jednej litery.
Będe wdzięczny za sugestie
No i co nikt mi nic nie podpowie w tym temacie ?