query speed joining tables - Mailing list pgsql-sql

From Christopher Smith
Subject query speed joining tables
Date
Msg-id 20030113212052.60493.qmail@web14107.mail.yahoo.com
Whole thread Raw
Responses Re: query speed joining tables  (Josh Berkus <josh@agliodbs.com>)
Re: query speed joining tables  (Tomasz Myrta <jasiek@klaster.net>)
List pgsql-sql
<p>I have 4 tables that I need to query... 3 of the tables are links by the field userid.<p>below are table sql
fragments.as well as the query.  The subquery causes very high <p>CPU usages.  It typically returns ~3000 matches. Is
thereanother way to rewrite this?  <p>SELECT user_login.userid FROM user_login,user_details_p,user_match_details<br
/> WHEREuser_login.userid = user_details_p.userid AND<br />user_details_p.userid = user_match_details.userid AND<br
/>user_details_p.gender='W' AND<br />user_details_p.seekgender ='M' AND<br />user_details_p.age >=18 AND <br
/>user_details_p.age<=50 AND<br />user_match_details.min_age <= 30 AND<br />user_match_details.max_age >= 30
AND<br/>user_details_p.ethnictype = 'Caucasian (White)' AND<br />strpos(user_match_details.ethnicity,'Asian') !=0
AND<br/>user_details_p.zipcode in (select zips_max.destination from zips_max where zips_max.origin='90210' )<br />order
byuser_login.last_login desc;<p> <p>               Table "public.user_login"<br />   Column   |          
Type          |   Modifiers   <br />------------+--------------------------+---------------<br /> userid     |
charactervarying(30)    | not null<br /> password   | character varying(30)    | not null<br /> email      | character
varying(50)   | not null<br /> last_login | timestamp with time zone | not null<br /> Indexes: user_login_pkey primary
keybtree (userid),<br />         <p><br />               Table "public.user_details_p"<br />     Column     
|          Type           |   Modifiers   <br />-----------------+--------------------------+---------------<br
/> userid         | character varying(30)    | not null<br /> gender          | character varying(1)     | <br
/> age            | integer                  | <br /> height          | character varying(10)    | <br /> ethnicty
pe     | character varying(30)    | <br /> education       | character varying(30)    | <br /> createdate      |
timestampwith time zone | default now()<br /> zipcode         | character varying(5)     | <br /> birthdate       |
date                    | default now()<br /> zodiac          | character varying(40)    | <br /> seekgender      |
charactervarying(2)     | <br />Indexes: user_details_p_pkey primary key btree (userid),<br />        
user_details_p_age_idxbtree (age),<br />      &nb sp;  user_details_p_ethnic_idx btree (ethnictype),<br />        
user_details_p_gender_idxbtree (gender),<br />         user_details_p_last_login_idx btree (last_login),<br />        
user_details_p_seekgender_idxbtree (seekgender),<br />         user_details_p_state_idx btree (state)<br />Foreign Key
constraints:$1 FOREIGN KEY (userid) REFERENCES user_login(userid) ON UPDATE NO ACTI<br />ON ON DELETE CASCADE<p><br
/>          Table "public.user_match_details"<br />      Column      |          Type          | Modifiers <br
/>------------------+------------------------+-----------<br/> userid           | character varying(30)  | not null<br
/> soughtmate      | character varying(200) | <br /> ethnicity        | character varying(200) | <br
/> marital_status  | character varying(200) | <br /> min_age          | integer                | <br
/> max_age         | integer   &nbs p;            | <br /> city             | character varying(50)  | <br
/> state           | character varying(2)   | <br /> zipcode          | integer                | <br
/> match_distance  | integer                | <br />Indexes: user_match_details_pkey primary key btree (userid)<br
/>ForeignKey constraints: $1 FOREIGN KEY (userid) REFERENCES user_login(userid) ON UPDATE NO ACTION ON DELETE
CASCADE<p>           Table "public.zips_300"<br />   Column    |         Type         | Modifiers <br
/>-------------+----------------------+-----------<br/> origin      | character varying(5) | <br /> destination |
charactervarying(5) | <br />Indexes: zips_300_origin_idx btree (origin)<p><br /> <p><br /><hr size="1" />Do you
Yahoo!?<br/><a href="http://rd.yahoo.com/mail/mailsig/*http://mailplus.yahoo.com">Yahoo! Mail Plus</a> - Powerful.
Affordable.<a href="http://rd.yahoo.com/mail/mailsig/*http://mailplus.yahoo.com">Sign up now</a> 

pgsql-sql by date:

Previous
From: J Greenbaum
Date:
Subject: Re: assigning values to array elements
Next
From: Josh Berkus
Date:
Subject: Re: query speed joining tables