Furkan Tektaş

mysql

07 Ağustos 2011

InnoDB ve MyISAM

Mysql ile uğraşmışsanız MyISAM ismi size bir yerlerden tanıdık geliyordur mutlaka. MyISAM, MySQL’in öntanımlı(default) depolama motorudur; öntanımlı diyorum çünkü bu konuda elimizde farklı opsiyonlarımız da var; InnoDB gibi. Peki MyISAM’ın avantajları neler, InnoDB’nin avantajları neler, hangi uygulamalarda hangisi kullanılmalı?

Olaya MyISAM yönüyle bakarsak;

  • MyISAM daha ziyade okuma (select) yapılan tablolarda tercih edilir çünkü InnoDB gibi farklı tablolarla ilişki kurmadığından daha hızlı şekilde okuma yapılabilir.
  • MyISAM full text search özelliğine sahiptir.
  • Transaction desteği yoktur; bu nedenle hızlı çalışsa bile yaptığınız işlemleri geri alamazsınız; veri bütünlüğü yoktur.
  • Bir kayıt eklenirken veya update edilirken tüm tabloyu kilitlediği için fazla insert-update edilecek tablolarda performansı düşüktür.
  • Farklı kaynaklarda farklı rakamlar verilse de sakladığınız veri yaklaşık 2GB’ı geçtiği zaman performansı gözle görülür şekilde düşer.
  • Foreign key desteği yoktur.
  • Tasarlanması kolaydır.
InnoDB yönüyle bakarsak;
  • Transaction desteği vardır, veri bütünlüğü yönüyle MyISAM’dan çok daha avantajlıdır.
  • Foreign Key desteği vardır.
  • Veri tabanı tasarımı daha zordur.
  • Full text search özelliği yoktur.
  • Insert ve Update işlemlerinde sadece kayıt yapılan satırı kilitleyip tüm tabloyu kilitlemediği için daha performanslıdır.
  • MyISAM’a göre daha fazla sistem kaynağına ihtiyaç duyar.

Kategori: Teknoloji | Tagler: foreign key, innodb, myisam, mysql, transaction

InnoDB ve MyISAM yazısına toplam 2 yorum yapılmış.

  1. Çok büyük boyutlarda veritabanlarıyla çalıştım. Fakat son deneyimim sphinx le oldu. Benim tecrübelerime göre ne myisam nede innodb hiç birisiyle belli bir noktadan sonra yola devam edemezsiniz. Donanım ne olursa olsun yazılım yetmediği sürece hiç bir işe yaramayacaktır. O yüzden innoDB ile mysql yi sadece depo olarak kullanıp üzerindeki verileri sphinx lucene-solr vs.. gibi daha performanslı motorlarla işleyip kullanmak daha mantıklı.

    • Teşekkür ederim; şu aralar PostgreSQL ile ilgilenmekteyim; yakın zamanda lucene planım da var; eğer birlikte kullanılırlarsa gayet hoş bir ikili olacakları kanaatindetim :)

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>