"Arthur Radulescu" <[EMAIL PROTECTED]> wrote: > > I have a simple query on a table of about 1,000,000 records... The table is > optimized and the query is pretty simple at this moment... something like > this > > select id,name,desc,cat,date from table where cat='12' > > however I need to order the results by date desc... I have indexes on both > the cat and date (of type timestamp) fields however this operation is much > more slowly when I used the order.... So the result is something like this > > select id,name,desc,cat,date from table where cat='12' > takes 0.7 seconds > > select id,name,desc,cat,date from table where cat='12' order by date desc > takes 2.4 seconds > > any ideea what I can do to help speeding up things? I was thinking that I > should recreate the table daily (something like > > insert into temp select * from table order by date desc > delete from table > insert into table select * from temp > > ) and add the last records at the begining so the mysql database can > retreieve the first records the ones added last because this is my purpose > in fact > > But I was wondering if you have any other ideas of how I could do this > because I am not to happy with such operations with such large tables...
Create composite index on (cat, date). Use EXPLAIN to see if MySQL uses index: http://dev.mysql.com/doc/mysql/en/EXPLAIN.html -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]