General SQL Development
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
 
User Name:
Password:
Remember me
 
Go Back   Dev Articles Community ForumsDatabasesGeneral SQL Development

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Display Modes
 
Unread Dev Articles Community Forums Sponsor:
  #1  
Old December 10th, 2002, 12:31 PM
AmericanD AmericanD is offline
Contributing User
Dev Articles Newbie (0 - 499 posts)
 
Join Date: Oct 2002
Posts: 81 AmericanD User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 6
Difference between MyISAM and non MyISAM tables

Hello

can anyone tell me what do you guys prefer to make your tables as, whether MyISAM or without that

and what are the benefits of MyISAM and why does a developer choose that

thanks
__________________
Hungry for Code

Programming works best with a team over one single person

Reply With Quote
  #2  
Old December 13th, 2002, 02:54 PM
crazytrain81 crazytrain81 is offline
Contributing User
Dev Articles Newbie (0 - 499 posts)
 
Join Date: Aug 2002
Posts: 232 crazytrain81 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 7
MyISAM is of course the default table type i'm MySQL. It's an improvement over the now-deprecated ISAM table type. It provides a simple tree structure for quick indexing on small tables, typicall fewer than 10,000 rows of data.

There are some other types of tables supported in MySQL, most of which won't provide any noticable differences.

A MERGE table is a table that only exists in memory, and will not be saved if MySQL crashes or has to be restarted. It is, as the name suggests, a merge of two (or more) tables. If you drop a MERGE table, it only drops the reference to the merge, not to the tables that are combined in it. It's not good for much!

Another table, the one which is best for huge tables, is InnoDB. It's probably the best RDBMS out there; it's actually a whole set of drivers on it's own, and when you use it, MySQL is really just a wrapper around the InnoDB table. Slashdot and other megamammoth sites out there use it, it's fast and effecient, but the trees are pretty large, so it's not good for smaller tables.

There are a few others.. like BerkeleyDB, which isn't anything special and doesn't provide any major performance increase.

The major difference between the various table types are the data tree structures and how they're handled within the RDBMS.

In the end, you'll probably find yourself sticking to MyISAM unless you're on a very large-scale project, in which cas eyou probably woudln't use MySQL anyway =D

Reply With Quote
  #3  
Old December 14th, 2002, 12:11 PM
johnn johnn is offline
Contributing User
Dev Articles Newbie (0 - 499 posts)
 
Join Date: May 2002
Location: Southern California, USA
Posts: 48 johnn User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 7
Is it ok to add InnoDB later once the table becomes huge in the future?

Thanks,
John

Reply With Quote
  #4  
Old May 4th, 2004, 12:44 PM
revelstoke revelstoke is offline
Registered User
Dev Articles Newbie (0 - 499 posts)
 
Join Date: May 2004
Posts: 1 revelstoke User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
MyISAM

I'm not sure what the difference is between old-school ISAM and MyISAM (neither was my DBMS professor).



ISAM guarantees that the next record sorted on the clustered index is adjacent on the disk. That's its main advantage: when we consider the now galactic time gap between memory access and hard disk fetches (to say nothing of the gap between memory access time and processor speed), ISAM becomes ideal for tables with vastly more queries than updates.



ISAM's weakness is that it doesn't handle updates well. In fact, it doesn't handle them at all. Instead of attaching the new row as an indexed and qualified member of the BTree, it simply references it from the appropriate leaf page. This can be fixed with a bulk load operation, but a bulk load is a form of table maintenance. If there's a difference between MyISAM and ISAM I think it would be here: it seems unfeasible to run a message board off of an ISAM system.



ISAM also offers some locking advantages over other systems.



I admit that I've quit using MyISAM all together: it doesn't have foreign key constraints. InnoDB does. InnoDB is slower than MyISAM for small tables, but the speed difference is noticeable only at around 100 queries per second. And if I’m getting 100 queries per second I usually start thinking about XML Caches anyways.



MySQL is still at a very restrictive and simplistic stage in its evolution, but it's still the best. Postgres has more SQL support, but it's slower, less stable, has a sub-standard JDBC driver, and is un-fun to maintain. SQL Server, Oracle, and DB2 are too expensive, but if you can get a trial copy (of DB2), or an Academic copy (of SQL Server), they're good databases for learning DBA tricks.

Reply With Quote
Reply

Viewing: Dev Articles Community ForumsDatabasesGeneral SQL Development > Difference between MyISAM and non MyISAM tables


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 6 hosted by Hostway