Autor Zpráva
Anonymní
Profil *
Dobrý den, potřebuji v MySql databázi vyhledat města, která budou nejpodobnější textu, který zadá uživatel. Například pokud uživatel napíše 'str', databáze vrátí 'Střezetice', 'Stračov'. Důležitá je hlavně rychlost, protože databáze obsahuje přes 5000 řádků. Jelikož s tím nemám žádné zkušenosti, tak nevím, jestli je lepší použít LIKE, nebo FULLTEXT (případně i cokoliv jiného) a jak by vypadal vyhledávací dotaz do databáze. Děkuji
Alphard
Profil
Jestli to má být našeptávač a má se hledat ze začátku, bude lepší like 'str%', takto se použije i index. Kdyby se hledalo i uvnitř slova '%str%', index se už nepoužije. Na druhou stranu, fulltext se hodí spíš na celá slova, ve výchozím nastavení slova do 3 znaků myslím vůbec nehledá.
Ten příklad Střezetice je problematický pro obě metody, nejlépe mít asi v databázi verzi bez diakritiky a v ní hledat.
Anonymní
Profil *
Skusil jsem použít like, ale jeden dotaz trvá cca. 1,5 sekundy. Malé zrychlení nastalo při změně enginu na MyIsam a přidání indexu. Je možné dotazy ještě nějak zrychlit?
Alphard
Profil
Na jakém železe jedete? Prohledávat 5000 záznamů přes sekundu je docela dost, jiné dotazy (např. seřadit tu tabulku měst) server stíhá bez problémů?
Anonymní
Profil *
Problém bude v pomalém procesoru (1,6ghz). PHP mám na localhostu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: