MYSQL query, optimization -


this sql query using in page building. runs 8 seconds , returns 12000 records, correct wondering if make possible suggestion how make faster?

select distinct advertiser.advertiserid, business.name, business.address1,    business.address2, business.city, business.state, business.postalcode,                    business.country, business.phone, business.fax, business.email, advertisercategory.categoryid, advertisercategory.categoryname category,                       (select     max(pubdate) pubdate                                  newspaperad                              (advertiserid = advertiser.advertiserid)                         group advertiserid) pubdate business inner join                   advertiser on business.businessid = advertiser.advertiserid inner join                   tsheetrecipient on advertiser.advertiserid = tsheetrecipient.advertiserid left outer join                   advertisercategory inner join                   advertisercategoryjoin on advertisercategory.categoryid = advertisercategoryjoin.categoryid on                    advertiser.advertiserid = advertisercategoryjoin.advertiserid     ((select     max(pubdate) pubdate                              newspaperad newspaperad_1                          (advertiserid = advertiser.advertiserid)                      group advertiserid) not null) order pubdate desc 

i'm wondering alternatives there group clause slowing down.

thanks

you move select max date part clause instead of having in select , clauses. like:

select distinct advertiser.advertiserid, business.name, business.address1,    business.address2, business.city, business.state, business.postalcode,                    business.country, business.phone, business.fax, business.email, advertisercategory.categoryid, advertisercategory.categoryname category, pd.pubdate business inner join                   advertiser on business.businessid = advertiser.advertiserid inner join                   tsheetrecipient on advertiser.advertiserid = tsheetrecipient.advertiserid left outer join                   advertisercategory inner join                   advertisercategoryjoin on advertisercategory.categoryid = advertisercategoryjoin.categoryid on                    advertiser.advertiserid = advertisercategoryjoin.advertiserid,                   (select    advertiserid, max(pubdate) pubdate                              newspaperad                      group advertiserid) pd                     pd.advertiserid = advertiser.advertiserid , pd.pubdate not null  order pubdate desc 

note didn't test query should give general idea.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -