Autor Zpráva
SeparateSK
Profil
Dobrý deň, robím vyhľadávač, no zatial nepoužívam SQL - teda MySQL, lebo neviem ako by to bolo s rýchlosťou.
Používam zopár funkcií pre zatiaľ vlastný systém, čo pozná len LIMIT a LIKE.
Tento systém prehľadáva už dopredu naplnenú array záznamov. Tieto záznamy do array nahrá iná funkcia,ktorej toto nahrávanie trvá 6 sekúnd.
Rýchlosť tohoto systému je nič moc zvlášť, keď má v 9909 záznamoch,ktoré majú spolu 18,8MB nájsť slovo "test". Trvá mu to 18 sekúnd - 70 výsledkov, čo by asi každého budúceho používateľa môjho vyhľadávača odradilo.

Teda by som chcel vedieť či ak tieto záznamy budem ukladať do DB so systémom MySQL, či bude hľadanie v megabajtoch záznamov rýchlejšie.
pcmanik
Profil
SeparateSK:
Ano bude ovela rychlejsie. Na webe najdes naplnene tabulky, mozes si vyskusat ako dlho trva vyhladavania v milionoch riadkoch. Vo svojom vlastnom systeme urcite nedosiahnes rychlost ako mysql. Pouziva mnohe optimalizacie dotazov, indexy, atd.
peta
Profil
http://www.dokuwiki.org/dokuwiki
DokuWiki pouziva nesql vyhledavani, kdyz nezadas sql pri instalaci. Vyhledavani trva malinko dyl nez u sql.

http://www.sqlite.org/
SqlLite pouziva diskovou sql. Vyhledavani trva malinko dyl nez u sql.

Kazdopadne, jestli mas moznost pouzit normalni sql, tak ji pouzij. Hlavne zadej indexy. Ma i fulltext vyhledavani. Dotaz vuci sql vetsinou trva 0.1s.

Co z toho plyne? Ze u sve aplikace nemas nejspis vytvorene indexy, klice pro vyhledavani. Ty muzou vypadat treba takto
a/aa.txt
a/ab.txt
...
b/ba.txt
A pak vlastne prohledavas uz jen soubor treba ba.txt na slova barbora. Coz je radove treba 10k soubor.

ba.txt
backora - 78
barbora - 5, 6, 12, 2034, 10456 (radek)
SeparateSK
Profil
Máte pravdu,prehodil som všetkých 10791 záznamov(18,8MB) do mysql tabuľky a hľadanie bolo oveľa rýchlejšie.
Slovo "test" našlo za 0,0004 sekundy, zatiaľ čo v mojom systéme za 17 sekúnd.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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