Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Spora pretraga na sajtu

[es] :: MySQL :: Spora pretraga na sajtu

[ Pregleda: 4009 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

powersz

Član broj: 245622
Poruke: 64
62.193.155.*



+2 Profil

icon Spora pretraga na sajtu03.06.2015. u 15:08 - pre 108 meseci
Zdravo, imam tabelu sa oko 800 000 redova. Imam polje opis-TEXT.
Za pretrazivanje koristim ovakav upit:
"SELECT * FROM tabela WHERE opis LIKE '%termin za pretragu%'"

Pretraga ovako traje traje 4-5 sec, da li postoji nacin da se to ubrza?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Spora pretraga na sajtu03.06.2015. u 15:11 - pre 108 meseci
like "%..." ne moze nikako da koristi index dakle pretraga je tako sto krene da cita tabelu od pocetka do kraja i radi match na red ..

da ubrzas
- redizajniraj aplikaciju
- dodaj FTS na to polje i koristi FTS (match against) umesto LIKE
- dodaj dodatne filtere
 
Odgovor na temu

powersz

Član broj: 245622
Poruke: 64
62.193.155.*



+2 Profil

icon Re: Spora pretraga na sajtu03.06.2015. u 16:36 - pre 108 meseci
Nisam uspeo da dodam FTS, pretpostavljam da ne moze za innodb(promenio sam u innodb jer mi je tako mnogo brze iscitavalo podatke)

Razmisljam da dodam jos jednu kolonu i da tu ubacim naslov i prvih 160 karaktera iz teksta i da se ta kolona koristi za pretragu.
E sad, zanima me kog tipa bi trebalo da bude ta kolona?

I sta se desava ako trazim match against ('miš') a u polju pise mis?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Spora pretraga na sajtu03.06.2015. u 16:42 - pre 108 meseci
moze innodb ali moras da uradis upgrade na 5.6

mis vs mis se hendla kolacijama, zavisi koju kolaciju stavis to ce se
ili nece pogoditi

kao sto rekoh, ne mora FTS, mozes da redizajniras aplikaciju tako da
interno indexiras ta polja, sve zavisi sta radis i kakve pretrage pravis
 
Odgovor na temu

powersz

Član broj: 245622
Poruke: 64
62.193.155.*



+2 Profil

icon Re: Spora pretraga na sajtu05.06.2015. u 09:48 - pre 108 meseci
Imam jos jedno pitanje. Nasao sam da full text index dodajem na sledeci nacin
ALTER TABLE tabela ADD FULLTEXT (polje);
E sad zanima me da li to moram da radim na primer jednom dnevno ako se baza cesto menja?
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Spora pretraga na sajtu05.06.2015. u 10:07 - pre 108 meseci
Nope, to je klasican index nad bazom - jednom definisam storage engine ce ga odrzavati sam. Ne trebas nikad da re-indexiras.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

powersz

Član broj: 245622
Poruke: 64
62.193.155.*



+2 Profil

icon Re: Spora pretraga na sajtu05.06.2015. u 13:44 - pre 107 meseci
Hvala ja planiram da pretrazujem vise kolona, npr da mi query bude match('naslov','opis','kategorija','podkategorija') against ....

Pretpostavljam da treba da uradim index ovako:

ALTER TABLE tabela ADD FULLTEXT (naslov, opis, kategorija, podkategorija);


Jos nesto me zanima, da li je moguce da se iskombinuje ovako nesto:
WHERE match() against() AND catid='12'
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Spora pretraga na sajtu05.06.2015. u 13:56 - pre 107 meseci
da li si mozda pogledao mysql manual za fulltext ?
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Spora pretraga na sajtu05.06.2015. u 14:27 - pre 107 meseci
Citat:
powersz:
Hvala ja planiram da pretrazujem vise kolona, npr da mi query bude match('naslov','opis','kategorija','podkategorija') against ....

Pretpostavljam da treba da uradim index ovako:

ALTER TABLE tabela ADD FULLTEXT (naslov, opis, kategorija, podkategorija);


Jos nesto me zanima, da li je moguce da se iskombinuje ovako nesto:
WHERE match() against() AND catid='12'

Je'l treba samo da radi, ili treba i da koristi index? :) Koliko redova ces imati u tabeli?

Lepo kaze Bogdan, ajde procitaj lepo manual?
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

[es] :: MySQL :: Spora pretraga na sajtu

[ Pregleda: 4009 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.