MyISAM ve InnoDB Arasındaki farklar en temel fark ; InnoDB MyISAM a göre daha kompleks bir yapıdır. MyISAM basit işlerde, InnoDB ise çok verinin olduğu karmaşık işlerde kullanılır.
MyISAM iyi yanları;
- SELECT işlemleri için hızlıdır.
- Sunucu kaynaklarını daha az tüketir.
- Kısıtlayıcılığı az olduğu için başlangıç seviyesi projeler için iyidir.
MyISAM kötü yanları;
- INSERT ve UPDATE işlemleri için yavaştır.
- 4 GB data sınırı vardır.
- Text tabanlı bir depolama sistemi olduğu için sunucu tarafında bozulma ihtimali daha yüksektir.
- Foreing key desteklemez. Bu yüzden tablolar arasında duruma göre bütünlük oluşturmak database ve SQL dışına yani programa/scripte kalır.
- Transaction desteği yoktur yani tabloların yedeğini tutmaz ve bir kaza olursa datalar geriye alınamaz.
- Table level lock yapısındadır. Yani işlem emri geldiğinde tüm tabloyu kilitler, işlemi bitirdikten sonra diğerine geçer
InnoDB iyi yanları;
- Foreign key sunar ve data bütünlüğünü database seviyesinde de korur.
- Insert ve Update hızlıdır
- Transaction desteği vardır, tabloların yedeğini tutar ve data kayıplarını geriye alma imkanı sunar
- Row level lock yapısındadır. İşlem yapmak için tüm tabloyu kilitlemez.
InnoDB kötü yanları;
- Database foreign key tasarımı daha çok zaman alır ve programda/scriptte ilişkiler konusunda esnekliğe müsade etmez.
- Yavaştır. Çünkü transaction işlemleri yavaşlatır.
- Daha çok sistem kaynağı tüketir.
NOT: MyISAM ; tip tabloları için kullanabiliriz. Statik durumlarda InnoDB ye gerek yok. MyISAM ile Daha hızlı sonuç alırız.