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

Cevap