[EMAIL PROTECTED] (hezjing) writes:

> When and why we create tables in different storage engines within a same
> database?
> 
> Take for example a normal inventory application that provides CRUD operation
> to
> - USER table (e.g. create new user)
> - STOCK table (e.g. when there is new stock arrives)
> - CUSTOMER table (e.g. create new customer)
> - SALE table (e.g. when a stock is bough by a customer)
> 
> I think it is always a best choice to use InnoDB since many applications are
> transactional.

For transactional stuff, yes, InnoDB is probably best.

> How would one wants to create a USER table in MyISAM engine and SALE table
> in InnoDB engine?
> 
> Can you give some example?

MyISAM is [almost] the original table type that came with MySQL so
it's still supported. It also has a smaller footprint on the
filesystem than InnoDB. There are a few things you can do with MyISAM
which can't be done with InnoDB (merge tables[1] comes to mind) and
therefore it can sometimes be better to use a different storage
engine.

As long as you are aware of the advantages and limitations of the
different engines you should be fine.

Simon

[1] If your sales table was huge it might make sense to have a sales table by 
month:

sales_200810
sales_200809
sales_200808
...

(all the above tables HAVE to be MyISAM tables) and use a merge table
sales_all being a combination of the above tables. Many people might
suggest using a view for this but the implementation in MySQL of merge
tables is more efficient than views which is why it's frequently used.

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

Reply via email to