Is 1.6 seconds a typical time to fetch nearly 3.7 million rows from a table? I am trying to work out if we need to upgrade our server hardware or need to configure the MySQL settings to make things faster. 

A simple SELECT * From table took 1.6 seconds from the command line. However mysql-slow.log shows that it takes 7 seconds when one of our processes from another server executes it. This seems very slow to me. The table contains three INT columns only.

It's an Ubuntu Rackspace cloud server. We have 4GB RAM and only 1.2GB is used up.

So do the numbers look about right or is there something wrong?

Additional information

I have added the EXPLAIN EXTENDED SELECT * From table here:
Both 1.6s and 7s seem reasonable.  Some issues that lead to variations:


Caching (Was I/O needed, or was everything sitting in RAM -- a factor of 10 variation is possible)
Distance to other server (Ping time)
Bandwidth to other server (Mb/sec)
Client's ability to absorb that much data that fast
Whether client is receiving it in chunks or all at once


But my question to you is -- what can you do with 3.7M rows all at once?  That is, this does not seem like a reasonable benchmark or whatever.

Back to the "caching".  Try this:


restart mysqld
run your test
run your test again -- likely to run faster.


Main cache:  for a 4GB server and InnoDB tables, innodb_buffer_pool_size should be something like 2G.