Got any indexes? --ja
On Wed, 11 Feb 2004, nyem wrote: > Hello, > > I have this table which stores an ever changing price of items. > > CREATE TABLE shop ( > article INT(4) UNSIGNED ZEROFILL NOT NULL default '0000', > date DATE NOT NULL default '0000-00-00', > price DOUBLE(16,2) NOT NULL default '0.00', > KEY article (article,date) > ); > > > And I used this query to get the percentage change in price of the items: > > SELECT > s1.article, > s2.date as prevDate, s2.price as prevPrice, > s1.date as lastDate, s1.price as lastPrice, > ROUND(((s1.price-s2.price)/s2.price)*100, 1) as percentChange > FROM shop s1, shop s2 > WHERE > s1.date=( > SELECT MAX(s3.date) FROM shop s3 > WHERE s1.article=s3.article > GROUP BY article > ) AND > s2.date=( > SELECT MAX(s4.date) FROM shop s4 > WHERE s1.article=s4.article AND s4.date<s1.date > GROUP BY article > ) > ORDER BY percentChange DESC; > > It works fine on small number of rows, but when the table reaches 400 rows > the time it took to execute the query was 16 sec. And my cpu shot up to > 100% whenever I populate 1000 rows. What have I done wrong here? > > regards, > nyem > > > > > -- -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]