mysql - Search performance issue with a search query -


i have performance issue query. have table companies (bedrijf) , table categories. want search query takes companies search wordt in company name, , want take companies in category category name contains search wordt.

i made query (search wordt is: marko):

/*8 seconds*/  select b.id,b.plaats       bedrijf b       inner join bedrijf_categorie bc on bc.bedrijfid = b.id       b.naam '%marko%'         or bc.categorieid in           (select id            categorie            naam '%marko%')  

or one, still testing faster big database:

/*7.6 seconds*/ select b.id,b.plaats       bedrijf b       inner join bedrijf_categorie bc on bc.bedrijfid = b.id       inner join categorie c on bc.categorieid = c.id       b.naam '%marko%' or c.naam '%marko%';  

when queries separately lot faster:

/*0.84 seconds*/ select b.id,b.plaats       bedrijf b       b.naam '%marko%'  /*2.39 seconds*/       select b.id,b.plaats       bedrijf b       inner join bedrijf_categorie bc on bc.bedrijfid = b.id       bc.categorieid in           (select id            categorie            naam '%marko%')  

how can queries in 1 query without performance lost. database contains 500.000 records in bedrijf , 500.000 records in bedijf_categorie.

you make union when can't find better solution:

(select b.id,b.plaats       bedrijf b       inner join bedrijf_categorie bc on bc.bedrijfid = b.id       bc.categorieid in           (select id            categorie            naam '%marko%')) union (select b.id,b.plaats       bedrijf b       b.naam '%marko%') 

Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -