View Single Post
Old 07-18-2011, 11:21 PM  
camperjohn64
Confirmed User
 
Industry Role:
Join Date: Feb 2005
Location: Los Angeles
Posts: 1,531
But if you must keep the table like it is, the IN statement is the killer.

1) index t_name. Use varchar (64) index *8)

2) Replace tags.t_name IN ('sponsor1','big tits','milf','lisa ann','anal','default') with UNION:

SELECT ads.a_id, ads.a_area, ads.a_code
FROM ads, adtags, tags
WHERE ads.a_id = adtags.at_aid AND adtags.at_tid=tags.t_id
AND tags.t_name='sponsor1'
AND ads.a_area IN (3,5,6,4)
ORDER BY ads.a_imp ASC

UNION
SELECT ads.a_id, ads.a_area, ads.a_code
FROM ads, adtags, tags
WHERE ads.a_id = adtags.at_aid AND adtags.at_tid=tags.t_id
AND tags.t_name='big tits'
AND ads.a_area IN (3,5,6,4)
ORDER BY ads.a_imp ASC

UNION
SELECT ads.a_id, ads.a_area, ads.a_code
FROM ads, adtags, tags
WHERE ads.a_id = adtags.at_aid AND adtags.at_tid=tags.t_id
AND tags.t_name='milf'
AND ads.a_area IN (3,5,6,4)
ORDER BY ads.a_imp ASC

UNION
SELECT ads.a_id, ads.a_area, ads.a_code
FROM ads, adtags, tags
WHERE ads.a_id = adtags.at_aid AND adtags.at_tid=tags.t_id
AND tags.t_name='lisa ann'
AND ads.a_area IN (3,5,6,4)
ORDER BY ads.a_imp ASC

UNION
SELECT ads.a_id, ads.a_area, ads.a_code
FROM ads, adtags, tags
WHERE ads.a_id = adtags.at_aid AND adtags.at_tid=tags.t_id
AND tags.t_name='anal'
AND ads.a_area IN (3,5,6,4)
ORDER BY ads.a_imp ASC

...
__________________
www.gimmiegirlproductions.com
camperjohn64 is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote