Jan, right now I would say performance sounds pretty good for the amount of data you have. 50 million records / 2.5 GB of data is a pretty sizable dataset, so 4 seconds to retrieve a handful of records seems decent.

Some suggestions for things you could do to possibly improve performance:

1 - Change to the compressed table format.  See
http://dev.mysql.com/doc/refman/5.0/en/compressed-format.html and http://techrepublic.com.com/5100-9592-5852557.html This will in theory allow a given number of records to be read off disk more quickly, since they are smaller.

2 - Run an ALTER TABLE command to ORDER BY the field you search against most commonly. This will in theory allow the database engine to read the table in a more orderly fashion without (as much) disk thrashing.

3 - upgrade memory in your server and change MySQL cache settings to match, in an attempt to keep the indexes and data in RAM. With the amount of data you have this should be possible but you'll need to make sure your hardware, OS, and MySQL release support an appropriate amount of RAM.

4 - if you can't do #3, and maybe even if you can, make sure you're using a very fast disk system (I'd guess you already are). I'd look at at a hardware RAID 5 or 1+0 setup on 15K RPM U320 SCSI disks. Fibre is nice if you can get it but tends to get expensive quickly.

Of course #3 and #4 will be dependent on budget and importance of this problem, not to mention your MySQL hosting setup/relationship.

Hope this helps,
Dan



Jan Gomes wrote:
Hy Guys,

I have a simple structure of tables, howewer has 50 million of registers and 
2,5 GB of data.
The table is MyIsam and has 4 integer fields and 1 Text field, one primary key with two integer fields and one btree index with one integer field.

There is a select in this table using an index(with one integer field), whith a set value for this field ( select * from table where field in (value1,value2,value3,value4,etc) ).

This select has delay 4s average.

Is this a good time for the select ? How can I run this select in less time?

I had make this optimization:

1-Compress the index
2-sort the index with myisamchk


PS.: This table is read-only, hasn't an insert, update or delete.



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to