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]