> Could you please post the result of "EXPLAIN" for both queries and "SHOW INDEX FROM 
>album_by_city".


I haven't used EXPLAIN before.

There are indexes on each column.

> And, for how much cities does this gets executed?


There are about 100 cities or regions that are used for ranking.

> Additionally, I would be interested, if you used the same method with

> Oracle or another. If so, would you please post it, too.


I didn't write the Oracle queries but they used sub selects and all kinds of not 
available in MySQL optimizations.

Thanks for your reply.

- Sam.
  Benjamin Pflugmann <[EMAIL PROTECTED]> wrote: 
Hi.

Could you please post the result of "EXPLAIN" for both queries and
"SHOW INDEX FROM album_by_city".

And, for how much cities does this gets executed?

Additionally, I would be interested, if you used the same method with
Oracle or another. If so, would you please post it, too.

Bye,

Benjamin.


On Thu, Feb 15, 2001 at 10:47:16AM -0800, [EMAIL PROTECTED] wrote:
> 
> I'm moving over a music play database from Oracle to MySQL. So far MySQL is faster 
>for all reports except this one where Oracle takes 8 seconds & MySQL will take 108 
>with my current method.
[...]
> I want to report the ranking of an album's plays (against all other albums ) for 
>every city over a time period.
> National album ranking for "Beatles #1" between 1/1/2001 and 2/14/2001 :
> New York #1
> Chicago #2
> Boston #1
> Miami #3
> 
> Right now the current approach involves looping over every city & making 2 queries. 
>First query to get the total # of plays for this album for the time period in that 
>city. Next query to figure out how many other albums for that city & for that time 
>have total play sums that are greater, which is the Rank.
> 
> foreach $cities as $this_city
> {
> $this_album_total_plays = "select sum(total_plays) from album_by_city
> where album_id = $album_id
> and city = $this_city
> and date >= $StartDate and date <= $EndDate";
> 
> $rank = "select album_id, sum(total_plays) from album_by_city
> where city = $this_city
> and date >= $StartDate and date <= $EndDate
> group by album_id
> having sum(total_plays) > $this_album_total_plays";
> echo "$this_city $rank";
> }
> Is there a way to do this with fewer queries or perhaps temporary tables for greater 
>speed ?
> 

---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)

To request this thread, e-mail 
To unsubscribe, e-mail 
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php



---------------------------------
Do You Yahoo!?
- Get personalized email addresses from Yahoo! Mail Personal Address  - only $35 a 
year!

Reply via email to