18 Ocak 2012 Çarşamba

Mysql vs MSSQL

MySQL resmi sitesinde, Mssql serverdan göç edecekler için hazırlanan İngilizce makalenin de yardımıyla1, elbette bir uygulama geliştirici olarak kendi deneyimimi önceleyerek aşağıda bir karşılaştırma yapmaya çalışacağım.



** Sakarya Üniversitesi Bilgisayar Programcılığı Bölümü öğrenciliğim döneminde, bir ödev ile ilgili yazmış olduğum iki yaygın veritabanı olan MySQL ve MSSQL karşılaştırmasını arşivimde buldum ve blogumda  paylaşmaya karar verdim. Devamı gelecek.. :)

Bir uygulama geliştirici olarak, Veri Tabanı Yönetim Sistemleri dersinin güz dönemi yarı yıl ödevinde önerilen karşılaştırmalı database yönetim sistemlerinden, hem şahsi tecrübem nedeniyle, hem de kullanım oranlarını göz önünde tutarak MySQL ve Mssql ikilisini seçtim.
Bu iki veritabanı yönetim sistemlerinin, mukayeseli tablosunu sunduğumuzda, şayet mevzu bahis olan MySQL 'in 5.0 sürümünden önceki sürümlerinden birini ele alsaydım, diğer saikler bir yana, uygulama geliştiricisine sunduğu avantajlar nedeni ile Mssql'den yana tavır almamız gerekirdi. Oysa bugün, MySQL 5.0 ve sonraki sürümlerine eklenen özelliklerden sonra, mukayese tablomuzun daha da billurlaştığını, bu mukayesinin pek çok açıdan(!) eşitler arası bir mücadeleye dönüştüğünü söyleyebilirim.
MySQL resmi sitesinde, Mssql serverdan göç edecekler için hazırlanan İngilizce makalenin de yardımıyla1, elbette bir uygulama geliştirici olarak kendi deneyimimi önceleyerek aşağıda bir karşılaştırma yapmaya çalışacağım.
MySQL denilince akla gelen ve tercih sebeplerinde hep üst sıraları koruyan nedenin, adı geçen makalede bulunan karşılaştırma tablosunda da öncelendiğini görüyoruz. Bu özellikler sırasıyla MySQL'in açık kaynak kodlu bir veri tabanı yönetim sistemi olması; aralarında MsSQL veritabanı yönetim sisteminin üreticisi Microsoft'un ürettiği MS Windows işletim sistemi de olmak üzere pek çok platform üstünde(RedHat, SuSE, Fedora, Solaris, HPUS, AIX, SCO, FreeBSD, Mac OS) çalışabildiği ve bir uygulama geliştiricisi nazarında en önemli teknik detay olan ve neredeyse tüm sürümlerinde (MySQL'in MsSQL karşısındaki derin mahcubiyetinin sebebi olan View, Stored Procedure gibi özelliklerin olmadığı 5.0 önceki sürümler) bulunan ve MSSQL karşısında önemli bir avantaj sayılan çok seçimli veri tabanı motoru seçenekleri. Yeri gelmişken değinmekte fayda var; farklı veri tabanı motoru seçenekleri MSSQL'de bulunan klasik tablo [table] 'ya göre verinin güvenli işlenip işlenmeyeceğinden tutun da, veri hacminin niteliğine (sıkıştırılmış veri ya da değil) göre pek çok seçenek sunmaktadır. Başta kaygı vericisi gibi duran bu veri tabanı motoru seçeneğinin, gelişen ihtiyaçlar ve saklanan verinin niteliğine göre, size en optimum seçeneği sunması MySQL'in, MSSQL karşısında önemli bir teknik avantajı.
Özellikle MySQL'in üretici firması Sun'un Oracle tarafından satın alındığı bugünlerde, Sun firmasının başka bir ürünü olan OpenOffice'ın başına gelen garabet benzerinin MySQL'in de başına gelebileceğini hatırda tutarak, Sanders Kaufman'ın yazdığı2 ve makale başlığında dikkat çektiği önemli bir ayrıntıya değinmek istiyorum: İhtiyaçlarımız için bir karar alırken, politik saikleri ve populizm uğruna öne çıkartılan aldatıcı başlıkları değil; bizatihi ihtiyaçlarımızı dikkate almalıyız.
Çünkü her iki veri tabanı yönetim sistemi de, iddialarıyla orantılı olarak bir uygulama geliştiricisinin temel ihtiyaçlarını karşılamaktadır. Her iki veritabanı yönetim sisteminde de verileri işlemek ve sorgulamak için SQL 'i kullanabilirsiniz. Her iki veri tabanı yönetim sistemi de ANSI-SQL'i desteklemektedir. (Bu arada, MySQL ve MSSQL veritabanı yönetim sistemlerinde SQL sentakslarında bazı farklar olduğunu belirtmeliyim. Bunu karşılaştırmayı konu alan bu yazıda, avantaj ya da dezavantaj cümlesinden saymanın bir önemi olacağını sanmıyorum. Çünkü mevzu bahis sözdizimi olduğunda, ölçü kullanıcı alışkanlıklarıdır.)
Yine her iki veri tabanı yönetim sistemi de, hızlı sorgular için indexleme ve XML desteği sunmaktadır.
MySQL ve MSSQL'i karşılaştırmaya devam edersek, MySQL'in ilişkisel veritabanının önemli bir özelliği olan yabancı anahtarları (foreign key) tam desteklemediğini görmekteyiz. (Yabancı anahtar desteği de yine MySQL'de bulunan farklı depolama motorlarından hangisini seçeceğinize bağlı olarak, değişebilir.)
Performans konusunda da MySQL lider olduğunu söyleyebiliriz. MySQL tablolarında varsayılan olarak seçili durumda olan MyISAM sayesinde hem verilerimiz diskte çok az yer kaplar, hem desorgu işlemelerinde CPU 'yu yormaz. MySQL Windows'ta sorunsuz çalışır ancak en iyi performansı UNIX ve türevi işletim sistemlerinde gösterir.
2Kaufman Sanders, “MySQL or SQL Server: Look beyond politics and hype when deciding which to use”,http://articles.techrepublic.com.com/5100-10878_11-1054385.html

7 yorum:

DatabaseAdmin dedi ki...

Merhaba Ziyahan bey,

Öncelikle bu iki güncel veri tabanı hakkında yapmış oldugunuz araştırma için çok teşekkür ederiz..bizde firma olarak bu iki veri tabanı arasında bir seçim yapmak için araştırmalar yapıyoruz..araştırmınızın diger kısımlarını da en kısa zamanda bizimle paylaşabilirseniz çok seviniriz..tekrardan teşekkürler,iyi çalışmalar

DatabaseAdmin dedi ki...

Merhabalar Ziyahan bey;

böyle güncel iki veri tabanı hakkında yapmış oldugunuz detaylı araştırma için gerçekten çok teşekkür ederiz..bu araştırmanızın kalan kısımlarını en kısa zamanda yayınlayabilirseniz çok seviniriz..bizde bu iki veri tabanının firmamızda kullanımı için avantaj ve dezavantajlarını araştırma içindeyiz..teşekkürler

zyhn dedi ki...
Bu yorum yazar tarafından silindi.
DatabaseAdmin dedi ki...

Ziyahan kardeşim,bizim kasım ayının sonuna kadar mysql ile mssql arasındaki avantaj ve dezavantajları powerpoint sunumu ile sunmamız gerekiyor..bize bu konu da yardımcı olabilirseniz size minnettar kalırız.. size telefon ile ulaşmamız mümkün müdür?

zyhn dedi ki...

ziyahan@mail.com adresine bir eposta gönderirseniz, inşaAllah cevaben telefon numaramızı size bildirelim.

Agit Kaplan dedi ki...

Teşekkürler Ziyahan bey, faydalı bir yazı olmuş.

zyhn dedi ki...

Teşekkür ederim Agit Bey.