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
Post a Comment