tags:

views:

27

answers:

2

I have a huge file (~26 MB) with around 200 columns & 30000 records. I want to import it into a database (InnoDB Engine). I wont't be updating or deleting records ever. ALthough I will be querying a lot of records from the table with high complexity in where clause. Which table engine should i prefer for faster query response? Will it really make a lot of difference? PS: All my other tables use InnoDB.

Also How can I avoid manually creating a table with 200 columns and specifying the datatype for each of them. Most of the columns are float and few are varchar and date.

A: 

when dealing with large amounts of data innodb fares better then myisam.,

http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/

and

http://www.cftopper.com/index.cfm?blogpostid=84

James Day, a MySQL Support Engineer and Wikipedia engineer recommends that people use InnoDB all the time unless for some reason if becomes apparent that you need MyISAM:

"I'd go with InnoDB until it's been proved that it's unsuitable. The first reason is reliability. Get a crash with MyISAM and you have the unreliable and slow, related to table size, table repair process. Same thing with InnoDB and you instead get the fixed time, fast and reliable log apply/rollback process. As the data set gets bigger, this matters more and more, as it does if you want to do things like sleep instead of being woken up in the middle of the night to fix a crashed table.

For reliability and performance, we use InnoDB for almost everything at Wikipedia - we just can't afford the downtime implied by MyISAM use and check table for 400GB of data when we get a crash."

ovais.tariq
+1  A: 

Usually the answer to "which is faster, ISAM or innodb" would be ISAM

But for best performance with a table which has very few updates you might want to have a look at Infobright's columnar db (which is integrated into mysql).

However with only 30k rows you'll not see a significant difference between innodb, isam and infobright.

OTOH, you really should have a long hard look at whether you really need 200 columns in a single table. I suspect that's not the case - and the schema is far more important in determining performance than the storage engine.

symcbean
wimvds
@wimvds: You are right, a blanket statement that MyISAM is faster is definitely wrong, but in this case (no updates or deletes, just reads), my guess would be that MyISAM is indeed faster.
nathan
I used InnoDB considering there won't be any significant difference in performance.
Gaurav