I've been watching the group for a long time, and there is a huge debate
about MyISAM vs InnoDB for "large" tables.

It really does depend on what you want to use your table for, what hardware
you running on, and what size you consider to be large!

For me, I also have mainly numerical data, and 1-2 concurrent users at a
time, generally only viewing the data, I found (to date, ongoing experiment)
innodb with no performance configuration (same as default in supplied my.cnf
files) tweaking slightly faster than a highly tweaked and studied MyISAM
table with exactly the same data, server, application etc. Table sizes
queried at that stage added up to 1GB. Under the InnoDB conversion, I ran
into just under 2GB. MyISAM also has a slight maintenance (offline I run
MyISAMChk frequently sorting the rows and indexes) overhead, which I
understand InnoDB not to have.

Many other sorts of bottlenecks creep in more easily at all layers of typical
database usage, because ODBC, for instance, works (performance wise)
differently on WIN XP SP1 and WIN 2K, fully SP-patched and updated, due to
bugs under XP! JDBC works better or worse depending on which VM, and if
you're following proper specification methods and good programming choices,
or not! By wiser choice of ODBC settings under XP SP1, I had performance
improve up to 8 times in my application. Under 2K, my performance merely
doubled with the same settings. So OS, drivers, etc are huge players to be
reckoned with as well.

Bottom line, IMHO, benchmark them both, for your requirements, in your
targetted environment(s). No respected DBA I know of makes any strategic
choice without first benchmarking specific requirements, especially for
"large" databases where users are going to be interactively querying them!
User time, ultimately/normally, is the most expensive thing to waste.

regards
Rob

-----Original Message-----
From: Chris Nolan [mailto:[EMAIL PROTECTED]
Sent: Wednesday 18 February 2004 14:48
To: Craig Robinson
Cc: [EMAIL PROTECTED]
Subject: Re: Which type of table to use?


Craig Robinson wrote:

>Hi,
>
>I intend to use MySQL for a database application, and I am not sure
>whether to use MyISAM or InnoDB tables. There will be a very large
>amount of (mainly numerical) data. The relations between the tables will
>be reasonably simple. Which table type would you recommend?
>
The relationships between tables can be satisfied by either table type 
if they can be satisfied by the relational model. InnoDB does offer 
foreign key constraints though, allowing you to leave integrity checking 
to the database. InnoDB will also allow you to easily ROLLBACK transactions.

MyISAM is faster in many cases, but InnoDB offers higher concurrency.

> Also, I find
>InnoDB tables take up about twice the space as MyISAM - is this correct?
>  
>
Yes, it is correct. One of the reasons is that InnoDB has to worry about 
keeping track of multiple versions of rows and which version of each row 
is to be seen by each currently running transaction.

>Cheers,
>
>Craig Robinson.
>
>
>  
>
Regards,

Chris


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

Reply via email to