MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (multi-threaded), çok kullanıcılı (multi-user), hızlı ve sağlam bir veri tabanı 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. Linux altında daha hızlı bir performans sergilemektedir. 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.

Web sunucularında en çok kullanılan veri tabanı olup ASP, PHP gibi birçok Web programlama dili ile kullanılabilir.

Bu yazıda MySQL’in son sürümü olan 5.7 ile gelen değişiklikleri inceleyeceğiz.

Eklenen ve Güncellenen özellikler:

MySQL 5.7’nin piyasaya sürülmesi ile aşağıdaki özellikler eklenmiş bulunuyor.

Geliştirilmiş güvenlik

  •  Daha kolay ve güvenli ortam başlatma, kurulum ve yönetim imkanları sağlandı
  • Veritabanı yöneticilerinin kontrol yetkileri geliştirildi

InnoDB iyileştirmeleri

  • Artan DDL performansı ve eş zamanlılık,
  • Yerel bölümleme,
  • Uzamsal veri tipleri ve dizinler,
  • Gelişmiş çevrimiçi işlemler,
  • Innochecksum işsellevliğinin iyileştirilmesi,
  • Arabellekle ilgili işlemlerin geliştirilmesi gibi özellikler eklendi.

Arttırılmış hız

  • SysBench Read-only Point-Selects kullanılarak 1.024 bağlantıda yapılan karşılaştırma testlerinde MySQL 5.7, saniye başına 1.600.000 sorgu (QPS) gerçekleştirerek MySQL 5.6’dan 3 kat daha hızlı çalışmıştır.

Yeni doğal(native) JSON veri tipi ve fonksiyonları

Şemasız verilerin verimli ve esnek bir şekilde tanımlanmasına, depolanmasına, aranmasına ve değiştirilmesine imkan tanıyan JSON’a ait geliştirmeler arasında SQL ile kolay entegrasyon desteği ve oluşturulan JSON sütunları kullanılarak JSON Belgelerinin dizin yönetimi yer almaktadır.

JSON değerleriyle çalışan fonksiyonlar da MySQL 5.7.8’e dahil edilmiştir. Bu fonksiyonlardan bazıları;

  • JSON değeri oluşturan fonksiyonlar: JSON ARRAY(), JSON MERGE() ve JSON OBJECT()
  • JSON değeri arayan fonksiyonlar: JSON CONTAINS(), JSON CONTAINS PATH(), JSON EXTRACT(), JSON KEYS() ve JSON SEARCH()
  • JSON değerini değiştiren fonksiyonlar: JSON APPEND(), JSON ARRAY APPEND(), JSON ARRAY INSERT(), JSON INSERT(), JSON QUOTE(), JSON REMOVE(), JSON REPLACE(), JSON SET() ve JSON UNQUOTE()
  • JSON hakkında bilgi veren fonksiyonlar JSON DEPTH(), JSON LENGTH(), JSON TYPE() ve JSON VALID()

MySQL SYS şeması

Performans şeması tarafından toplanan verinin veritabanı yöneticileri veya geliştiriciler tarafından

  • Ortak performans,
  • Durum,
  • Kullanım,
  • İzlemeler

üzerine yorumlanmasına yardımcı olan nesnelerden oluşmaktadır.

Performans şeması

  • Sistem ve durum değişkenlerinin hakkında bilgilere erişimi sağlar. Bu bilgiler arasında bellek, sorgulamalar, saklanan rutinler, oluşturulan tablolar, replikasyon ve kilitler gibi özellikler vardır.

Optimizer iyileştirmeleri

  • Dinamik maliyet modeli, sorgularda daha iyi performans sunarken kullanıcıya da daha fazla kontrol imkanı vermektedir.

Trigger geliştirmeleri

  • Önceki versiyonlarda her trigger olayı ve zamanı için en fazla 1 kullanıma izin veriliyordu. Yeni MySQL 5.7 ile bu limitleme kaldırıldı ve çoklu triggerlara izin verildi.

Onaylanmayan veya Artık Kullanılmayan Özellikler

Bu özellikler MySQL’in 5.7 sürümünde onaylanmayan özelliklerdir. Sonraki güncellemelerde çıkarılacaktırlar.

ERROR FOR DIVISION BY ZERO, NO ZERO DATE, NO ZERO IN DATE gibi SQL modları çıkartılacaktır

Hesap yönetimi ifadelerinde değişiklikler yapılmıştır:

GRANT komutu ile artık yeni kullanıcı oluşturma veya hesap düzenleme seçenekleri kullanılamayacak. Bunun yerine CREATE USER veya ALTER USER komutları kullanılacaktır.

PASSWORD() fonksiyonu  ve SET PASSWORD . . . = PASSWORD (‘auth string’) yazım şekli de artık kullanılmayacaktır. SET PASSWORD . . . ‘auth string’ kullanımı hala geçerlidir ancak parola belirlemede ALTER USER ‘ın kullanılması tavsiye edilmektedir.

–skip-innodb seçeneği( ve eşanlamlıları olan –innodb=OFF, –disable-innodb  gibi kullanımlar) MySQL 5.7’de etkili değildir çünkü Innodb geçersiz hale getirilememektedir.

 

Referanslar:

https://en.wikipedia.org/wiki/MySQL

http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html