From: | "Michael Nolan" <htfoot(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | More grist for the PostgreSQL vs MySQL mill |
Date: | 2007-01-20 22:52:07 |
Message-ID: | 4abad0eb0701201452x129eaf89w7fdfb7a0559f968e@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I have a MySQL table on our public website that is populated from a similar
table on our internal site, which runs PostgreSQL.
Recently I was trying to enhance one of our website queries and ran across
an interesting phenomenon:
The following query runs very quickly in both PostgreSQL (8.1.3) and MySQL (
5.0.21)
select plr_rated_memid from tnmt_plr where plr_eventid in ('200607163681');
(tnmt_plr has around 3.5 million rows in it, and plr_eventid is an indexed
field.)
Both databases return the correct number of rows (74) in less than a
second.
However, when I then try to use that query as a subquery to select rows from
another table, things change:
select count(*) from memmast where memid in (select plr_rated_memid from
tnmt_plr where plr_eventid in ('200607163681');
(memid is also an indexed field in memmast, a table which has about 650,000
rows in it.)
This query takes about a second on PostgreSQL but takes OVER SEVEN MINUTES
on MySQL!
--
Mike Nolan
From | Date | Subject | |
---|---|---|---|
Next Message | Ron Johnson | 2007-01-20 22:59:47 | Re: More grist for the PostgreSQL vs MySQL mill |
Previous Message | webb.sprague | 2007-01-20 22:10:20 | Regular expressions and arrays and ANY() question |