Yeni konu açmayayım. innodb'nin çok büyük bir avantajını öğrendim. myisam'da yapılıyor mu bilmiyorum ama, birden fazla tabloyu iliskilendirerek her 2 tabloyu etkileyen islemler yapabiliyorsunuz. Söyle ki;
Diyelim sarkı sözü siteniz var. Sarkıcılar tablonuz ve sarkı sözleri tablonuz var. innodb yapısını kullanarak, atıyorum bir sanatçıyı sildiğinizde, onun sarkı sözlerinin de silinmesini
hiç bir PHP koduna gerek kalmadan sağlayabilirsiniz. Gözüme güzel gözüktü
Ama okuduğum kadarıyla performans sorunları da varmıs. Sitenin admin tarafında innodb, kullanıcı tarafında myisam kullanacak bir seyler yapmak lazım herhalde
Örnek veritabanı yapısı:
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
Buna kısaca relational database deniyor. Tablolar arasında foreign keyler ve constraintler aracılığı ile bağlantı kuruyorsunuz.
Oracle, MSSQL, Sybase bunların hepsi relational database lerdir.
Relational database in faydası, business logic dediğimiz ürünün mantığını sınırlamalarını veritabanı seviyesinde belirleyebilirsiniz.
Ek olarak bu tür dblerde mysql de olmayan yada yeni yeni gelen bir sürü özellikler vardır.
Basitçe triggerlar, stored procedure ler, fonksiyonlar, clusterlar, transaction ...
Örneğin Oracle veritabanında 1000 satırlık bir tablom var diyelim, Ploop bu tabloyu sabah saat 10 da yanlışlıkla update etti diyelim, sadece 1 kayıt update edecekken WHERE i unutmuş ve tüm tabloyu update etmiş...
Oracle da zaman için yolculuk yapabiliyorsunuz, evet yanlış duymadınız.
Tablonun saat 9 daki haline ulaşıp, saat 10 da yanlışlıkla update edilen tabloyu saat 9 daki haline yada 9:55 deki haline çevirebiliyorsunuz.
mySQL de olmayıp diğer veritabanlarında olan o kadar çok özellik var ki saymakla bitmez.
Diğer veritabanlarındaki bu özelliklerin mySQL de olmamasına rağmen mySQL in bu kadar çok kullanılmasının nedeni daha hafif (lightweight) olması, bu sayede de web uygulamalarında çok hızlı çalışabilmesidir. Performansı web uygulamarında çok iyidir.