Veritabanını oluşturmadan önce bilmemiz gereken en önemli konulardan biri veritabanı motorlarıdır. Veritabanı motorlarını anlatmadan önce, ne gibi farklarının olduğunu, tercih edilme sebeplerini ve işlevlerini öğrenelim.
Depolama motorları olarak bilinen InnoDB ve MyISAM, belirli bir veritabanı tablosundan bilgi çekmeyi tabloda bilgi saklamayı ve tablodaki bilgiyi kontrol etmeyi sağlar.
MyISAM, MySQL’in en eski veritabanı depolama motorudur. Standart depolama motoru olarak kabul edilir. Tablolar, fiziksel diskin üç ayrı konumunda tutulur. Tablo başına 64 indeks oluşturulabilir. Foreign Key kullanımını desteklememektedir.
InnoDB ise güvenlik açısından tercih edilen bir veritabanı motorudur. İlişkisel veritabanını geçişi Foreign Key sayesinde sağlamaktadır. Aynı anda birden fazla kullanıcının UPDATE/DELETE işlemlerini sorunsuz bir şekilde yapılmasını sağlayacak şekilde tasarlanmıştır.
Eğer yoğun bir şekilde CRUD(Create, Read, Update, Delete) işlemi yapıyorsak InnoDB kullanmak mantıklıdır.
Eğer Full-Text araması yapılacaksa MyISAM mantıklıdır.(InnoDB desteklemez)
İlişkisel veritabanı yani Foreign Key kullanımı mevcut ise InnoDB kullanmak mantıklıdır.
RAM ve Disk Alanını düşüneceksek eğer MyISAM kullanmak mantıklıdır. InnoDB çok daha fazla sistem kaynağı tüketir.
Veri bütünlüğüne önem veriyorsak, InnoDB daha mantıklıdır.
InnoDB de transaction desteği vardır. MyISAM da yoktur.
InnoDB’nin sistem sorunlarına karşı daha iyi bir kurtarma alt yapısı vardır, MyISAM bu konuda daha zayıftır.
Tasarımı daha basit olan MyISAM’dır. Çünkü ilişkisel olmadığından hemen tasarlanabilir. Fakat kodlama yapılacak kişiler için zorluk çıkarabilir.
Not: Transaction, birden çok işlemin yapıldığı durumlarda hata oluşması halinde tüm işlemin geri alınması(RollBack) anlamına gelmektedir. Örneğin, kredi kartı ile alışveriş yapıldığını düşünelim. Kredi kartından para azalacakken başka bir hesaba para yatması gerekmektedir. Bu durumda bir hata oluşmaması gerekmektedir. Transaction bu noktada devreye girer ve işlemleri geri alabilir. Ya hep ya hiç prensibine sahip olduğunu söyleyebilir.
Kısa ve öz bir anlatım olmuş teşekkürler hocam