Mysql ile uğraşıyorsanız bazen çelişki içinde kalabilirsiniz. Tablo yapısı olarak genelde MyISAM kullanılıyor ancak yerine göre bu tablo yapısı çok sorun çıkartabiliyor. Örneğin bir sorgu sırasında eger sorguda sorun varsa MyISAM yapılı tablo komple kilitleniyor ve başka birisi girmeye çalıştığında sitenize önceki sorgu işlemi bitmeden açılmıyor. bunun sebebi Sorunlu ve büyük sorgularda MyISAM tablo yapısının veritabanını kitlemesi olarak görebiliriz. Ancak Bu tarz sorgularda, devamlı veri alış verisi yaptığınız tablolarda InnoDB kullanmanızı tavsiye ederim. Çünkü bir sorgu esnasında sadece işlem yapılan kısmı kitleyerek veritabanının diğer elemanlarına ilişmiyor, böylece farklı bir işlem yada aynı işlemi farklı bir istemciden işleyen kişi bir önceki sorunun etkilerini görmüyor.

MyISAM’dam InnoDB’ye Dönüştürmek

Projelerinizde MyISAM tablo yapısını kullanmış iseniz ve bu tablo yapısını InnoDB ye dönüştürmek istiyorsanız aşağıdaki sırayı takip etmeniz yeterli. Bunun için phpMyAdmin den sorgu cümlesi çalıştırmanız gerek: Sırayla uygulayın

Yukarıdaki işlemleri sırası ile yaptığınızda tablo yapınız MyISAM’dan InnoDB’ye dönüştürülecektir.

InnoDB’den MyISAM’a dönüştürmek

Bazı durumlarda MyISAM, InnoDBye göre daha avantajlı ve performanslıdır. Örneğin çok fazla kayıt içermeyen ve devamlı INSERT yada UPDATE kullanmayan tablolar myISAM da daha performanslı çalışacaktır. Bu durumda da InnoDB tablo yapısını MyISAM’a dönüştürmek istediğinizde aşağıdaki işlemleri yapmanız yeterli olacaktır..

Sonuç olarak iki tablo yapısı arasında performansı özetlersek:
SELECT sorguları için MyISAM, UPDATE yada INSERT sorguları için InnoDEB tablo yapısı daha performanslıdır.

Ancak bu kurallar tablo yapınıza yada büyüklüğüne göre değişkenlik gösterebilir. En performanslı yapıyı seçmek için testler yapmanız sonuçlarına göre en uygununu kullanmanız tavsiye olunur..

2 YORUMLAR

  1. ALTER TABLE tablo_ismi ORDER BY primary_key_kolon_ismi;

    ALTER TABLE tablo_ismi ENGINE = MYISAM;

    Yukarıdaki sorguyu çalıştırmam gerekiyor ancak kafamı kurcalayan bir nokta var…

    tablo_ismi ve primary_key_kolon_ismi
    bölümlerini neye göre dolduruyoruz…

Bir Cevap Yazın