MySQL

Lodos olarak, pratik bir DBE'ye ihtiyaç duyduğumuzda ilk tercihimiz.


MySQL :

MySQL çoklu iş parçacıklı (multi-threaded), çok kullanıcılı (multi-user), hızlı ve sağlam (robust) bir veritabanı yönetim sistemidir.

UNIX, OS/2 ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur. MySql'in Oracle tarafından satın alınıp desteklenmeye başlaması ile birlikte çok önemli bir takım MySql yardımcı yazılımları da ücretli lisansa bağlanmış, bir taraftan ücretsiz dağıtılırken diğer taraftan ücretsiz kullanım günden güne zorlaştırılmaya başlanmıştır.

Linux altında daha iyi bir performans sergilemektedir. Windows kurulumlarında uyum sorunları ve kararlılık sorunları çıkartabilmektedir. Kaynak kodu açık olan MySQL'in pek çok platform için çalıştırılabilir ikilik kod halindeki indirilebilir sürümleri de mevcuttur. Ayrıca ODBC sürücüleri de bulunduğu için birçok geliştirme platformunda rahatlıkla kullanılabilir.

MySql geliştiricileri, 500'den fazlası 7 milyon kayıt içeren 10.000 tablodan oluşan kendi veritabanlarını (100 gigabyte civarında veri) MySQL'de tuttuklarını ifade etmişlerdir.

Web sunucularında en çok kullanılan veritabanıdır, asp, php gibi birçok web programlama dili ile kullanılabilmesi için hazır kütüphaneleri mevcuttur.

MySQL, tuttuğu tablolarla çok kullanıcılı sistemlerde söz konusu olan erişim hakları sorununu başarılı bir şekilde çözmektedir. MySQL'in 4.0 sürümü ile birlikte "transaction" desteği, 4.1 sürümüyle birlikte de alt sorgu desteği eklenmiştir.

Ayrıca "veri tutarlılığını (referential integrity)" sağlama işinin programcıya bırakılması tercih edilmiştir, ancak bu bir dezavantaj olarak görülmeyebilir. Çünkü pek çok veritabanı programcısı VTYS'lerdeki veri tutarlılığı prosedürlerinin esnek olmayan, zorlayıcı bir özellik olduğunu düşünmektedir.

MySQL indexleme motoru olarak birkaç çeşit seçenek sunmaktadır. Bunlar MyISAM, InnoDB, Memory, CSV, BlackHole, Archive seçenekleridir. Bu seçenekler kayıt alanı, indexleme hızları, kapasiteleri, kurtarma ve güvenlik imkanları, geri döndürülebilirlikleri gibi farlıklıklar göstermekte ve ihtiyaca göre yazılımcılar ya da veri tabanı yöneticileri tarafından tercih edilmektedir.

Ayrıca bu seçenekler, tablo kapasitelerine bağlı olarak küçük tablolarda yüksek performans, büyük tablolarda yüksek performans ya da her zaman aynı performans gibi seçenekler de sunar. Fakat tüm bu seçeneklerden verim alabilmek için mutlaka doğru konfigürasyon ayarları yapılmalı, MySQL hizmet sunacağı kapasiteye göre yapılandırılmalıdır.

Çoklu iş parçacıklı (multi-threaded) olması sebebi ile aynı anda gelen sorgular özellikle de optimize edilmemiş sorgular sebebi ile MySql logaritmik bir performans kaybı yaşamakta ve sistemi kilitleme aşamasına kadar gelebilmektedir. Bu nedenle yazılan sorguların optimize edilmiş olması ve MySql'in iyi konfigüre edilmiş olması şarttır. Cache ayarları performans için en önemli ayarlar arasındadır.

MySQL cluster, load balancing, proxy ve mirror yapıları sunabilen ve dikine büyüyen bir veri tabanı olmakla birlikte. master-slave tanımlamaları biraz sıkıcı olabilmektedir.

Lodos olarak, multi master-single slave yapıya ihtiyaç duyduğumuz çok noktadan veri üreten sistemler için kendi yazılımlarımız ile çözüm üretmek durumda kalmıştık. Oldukça başarılı sonuçlar verse de bu uygulamamız bize MySQL'in bu konuda ne kadar yetersiz olduğunu göstermiş olması açısından önemlidir.

lodos@lodos.com
0 216 389 11 36
1997 - 2017 Lodos Yazılım. Tüm hakları saklıdır.