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
Re: query speed joining tables |
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>