On 05/03/2011 12:52 AM, Mucibirahman İLBUĞA wrote:
03-05-2011 00:34 tarihinde, Yüksel ÖZCAN yazdı:
3 senedir desktop uygulamalarımda mysql yerine postgresql kullanıyorum.
Merhabalar,
Tam bu noktada hep merak ettiğim bir şeyi sormak istiyorum.
Şu ana kadar Ms-Access (cahiliye dönemimde tabi ki), Firebird, MySQL,
SQLight kullanmışlığım vardır. Ancak bunlar genelde basit anlamlarda
tecrübeler. Yaz, oku gibi klasik basit veritabanı programlarında...
Ancak şu ana kadar birisinin diğerinden farklı olduğu noktaları çok
kavrayamadım. Neticede SQL kodu malumunuz. Oku dersin... Yaz dersin...
Değiştir dersin...
Peki PostgreSQL'i bu anlamda diğerlerinden farklı ve özel kılan nedir?
Yani neden MySQL değil de PostgreSQL?...
Klasik gugıllamada "Postgres sağlamdır, güvenlidir ama MySQL ise
hızlıdır" gibi ifadelere çok sık rastlanıyor ama "HAyır ben şu
veritabanını seçmeliyim" dediğiniz noktada programcı için kriter nedir?
Ben farkli birkaç konu başlığı ile olayı izah etmeye çalışayım.
1. Lisanslama ve gelecek kaygısı: MySQL innoDB'yi kendi bünyesine
kattığında çok sevinmiştim. Ancak yanılmıyorsam 2005 yılı içerisinde
Oracle innoDB'yi satın alınca MySQL'deki ne kadar veritabanım varsa,
PostgreSQL için adaptörler yazarak default veritabanımı değiştirdim (bir
önceki maillerde "veritabanı değiştiren görmedim" denilmiş, ben MySQL,
interbase, firebird veritabanlarımı, ki çoğu 100 tablonun üzerinde ve
trigger, sp vs.. olan veritabanları idi, uygulamalarıma adaptörler
yazarak PostgreSQL'e 1 senede çevirdim. Gayretle olabildiğine örnek olsun).
En sonunda Oracle > SUN > MySQL olunca balıklar Oracle midesine
iniverdi. Bunun neticesini sağlam 2 örnekle vereyim.
Bir kurumda SUN Portal uygulaması kullanılıyordu. Güya open source vs..
SUN Portal yazılımcılarından biri para verilerek getirildi ve portal
yazılımı kuruma göre uyarlandı(kod değişiklikleri, eklentileri vs..).
Tabi Sun'a ait diğer ürünler de kullanılıyordu. (Access Manager, SUN
Ldap vs..) Bu portal tümü ile entegre çalışıyordu. Yazılımcı 2 haftada
zar zor kurdu portali. Oracle satın alınca Sun'ı hikaye başladı.
Dedilerki portal artık geliştirilmeyecek ve 2013 yılı sonunda desteğide
verilmeyecek. Kaldılar ortada. Hani paralı destek vardı, arkasında dünya
devi Sun ve Oracle vardı ne oldu? WebLogic var verelim oldu :)
ikinci örnek ise, support talep edildiğinde, 2009 yılı başında destek
sözleşmenizin süresi dolmuş bu nedenle 2009, 2010 destek paralarını
ödeyiniz ki bizde size yeni destek sözleşmesini 2011 için gönderelim
dediler (tabi bu ara sürede destek alınmadı kendilerinden). Soygunun
böylesi görülmüş şey değil.
Şimdi bu bilgiler ışığında MySQL'in geleceğine bir göz atalım ve isterse
ağzında kuş tutsun kullanmanın ne kadar manidar olduğunu düşünelim.
2. Yapısal farklılıklar: Bu konular oldukça uzun ayrıca internetten
bulunabilecek versus'lar var zaten. Kısaca bilgi ve tecrübelerimi yazayım.
SQL dili her ne kadar RDBMS için ortak olsa da (ihtiyaçlara göre
standart dışı kullanımları da vardır) bu üzerinde çalıştığı yazılımların
da ortak yapıda olmasını gerektirmeyeceğinden
her veritabanı yazılımının yoğurt yemesi farklıdır. SQLite (SQLight
değil bu arada) msaccess benzeri bir yapıya sahiptir. Sunuculuk yapamaz,
veritabanı dosyanıza api ile doğrudan erişirsiniz.
MySQL standart tablo tiplerinde (MyISAM) transaction, trigger, view vs.
desteklemez, tablo bazlı kilitleme yapar vs.. Yoğun tek düze işlerde
başarımı oldukça iyidir.
Tablo kayıt sayılarını information schema da tuttuğu için count sonucu
anında döner. PostgreSQL veriyi sayarak sayısını elde eder. PostgreSQL
her veri update olduğunda verinin üzerinde işlem yapmak yerine bir
kopyasını oluşturur, MySQL verinin üzerinde işlem yapar vs.. Ayrıca
gerçekten büyük veritabanlarında MySQL, özellikle join işlemleri ve IN
kullanımında (son durumu bilemiyorum) ciddi sıkıntılı idi.
Kolay gelsin,
--
/**
* *@author* Atıf CEYLAN
* Software Developer & System Admin
* http://www.atifceylan.com
*/
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php