MySql Fulltext search

poruka: 3
|
čitano: 5.571
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
MySql Fulltext search

Ima li tko od vas iskustva sa mysql fullsearch mogućnostima?

 

Razvijam relacijsku bazu podataka, koja mora biti pretraživa na osnovu unesenih riječi. Recimo da imam 6 tabela koje su međusobno povezane  (JOIN) i koje želim pretražiti po zadanim kriterijima (selekcijom iz padajućeg izbornika) i traženim riječima.

 

Kakve su performanse kod takvih radnji i kako ih poboljšati? Ne sjećam se da sam koristio više od 3-4 tabele povezane, a sada imam znatno vece zahtjeve. 

All software has bugs.Any developer who claims that his or her software is always bug-free is living in a fantasy world.
Poruka je uređivana zadnji put pet 9.5.2014 15:12 (Nix).
Moj PC  
0 0 hvala 0
11 godina
offline
MySql Fulltext search

JOIN je koma kod velikih tablica. Brzina drastično opada kada se koristi JOIN, pogotovo kad imaš veliki broj podataka i redova za obraditi.

 

Ako su velike, memcached će ti pomoći ;) http://memcached.org/

Samomrzeći hrvat
Poruka je uređivana zadnji put pet 9.5.2014 14:43 (Entry Point).
Moj PC  
0 0 hvala 0
17 godina
offline
Re: MySql Fulltext search
Entry Point kaže...

JOIN je koma kod velikih tablica. Brzina drastično opada kada se koristi JOIN, pogotovo kad imaš veliki broj podataka i redova za obraditi.

 

Ako su velike, memcached će ti pomoći ;) http://memcached.org/

Na svim web aplikacijama (custom cms) koje sam do sada radio po defaultu je uključen file cache, što uglavnom zadovoljava, tako da nisam imao potrebu za implementaciju  memcached sistema.  Nisam upoznat kako memched odgovara na potrebe fulltext pretraživanja sadržaja.

 

Ispred mene je postavljen zadatak  napraviti bazu čiji će se sadržaj intenzivno pretraživati. DB schema je normalizovana na desetine tabela,  aplikacija je b2b / p2p networking, korisnici preko obrazaca mogu krerirati vlastite prezentacije dodavanjem vlastitih značajki i koristeći postojeće.  Dio sadržaja mora biti dostupan preko internog pretraživača.

 

Za ovu aplikaciju prvotno sam planirao koristiti MongoDB, no tek u zadnjoj verziji implementirali su fulltext search  mogućnosti, ali nažalost bez podrške za naš i mnoge druge jezike. Odluci da se odustane od MongoDb ima i financijsku stranu, bilo bi potrebno zakupiti min 3 servera za tu bazu podataka i još jedan za elasticserch...  Dakle u startu režem troškove na minimum i vraćam se MySql rješenju.

 

Pošto višestruki JOINs predstavlja problem i usko grlo, tražim rješenje za isto. Nisam upoznat u kojem smislu MySql Views utječu na performace i je li iste moguće koristiti u svrhu pretraživanja sadržaja.

Druga solucija koja mi pada na pamet je kreiranje posebne odvojene denormalizirane tabele koja će se  automatski popunjavati nakon što korisnik spremi svoje unose u  normalizovanu (relacijsku) bazu.  Ova jeste dupliciranje sadržaja, ali samo onog koji treba biti full text indeksiran..  i glumljenje NoSql rješenja...

 

Treće solucije u ovom trenutku ne vidim, zato očekujem neke vaše prijedloge.  Sve ovo je za potrebe startup projekta u ranom stupnju  razvoja.

 

Hvala

 

 

 

All software has bugs.Any developer who claims that his or her software is always bug-free is living in a fantasy world.
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice