Jump to content

Recommended Posts

I read some article about different mysql storage engine but I need to know which is the best practically to performance and still able to use transaction, foreign keys and locking

thanks

 

MyISAM Default engine as of MySQL 3.23 with great performance

MEMORY Hash based, stored in memory, useful for temporary tables

InnoDB Supports transactions, row-level locking, and foreign keys

BerkeleyDB Supports transactions and page-level locking

BLACKHOLE /dev/null storage engine (anything you write to it disappears)

EXAMPLE Example storage engine

ARCHIVE Archive storage engine

CSV CSV storage engine

ndbcluster Clustered, fault-tolerant, memory-based tables

FEDERATED Federated MySQL storage engine

MRG_MYISAM Collection of identical MyISAM tables

ISAM Obsolete storage engine

Link to comment
https://forums.phpfreaks.com/topic/62653-solved-wich-engine-is-the-best/
Share on other sites

Define "corrupted easily".

 

When the database suddenly dies...because the process is killed or the power to the server is cut, etc...it can cause harm to any of the database files.  MyISAM has a greater potential for problems because it does table level locking during inserts.  That means that if an insert is occurring when the database dies, that table is left in a locked state.  It is easily fixed by repairing the table.

 

There is no one engine better than another.  If you need transactions however, there is only one choice, at least until MySQL 6 comes out.

 

If you have a read heavy environment, and don't need transactions, then **generally speaking** MyISAM is going to give you better performance.  Due to it's table level locking strategy however, in a heavy insert environment, MyISAM is not always the best choice...InnoDB is the better choice of the two major engines.

till able to use transaction, foreign keys and locking

 

Only MyISAM supports transactions and foreign keys.  Locking is a part of any and every database engine.

 

This is wrong - MyISAM tables do not support Transactions - You need to use the InnoDB engine if you require Transactions, the same goes for Foreign Keys (They can be defined for MyISAM tables but there is no referential integrity support) .

 

 

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.