MySQL 5.7 mi MySQL 8 mi?

MySQL 5.7 mi MySQL 8 mi? Hangisi daha iyi sorusuna cevap arayalım.

Veritabanı yöneticileri genel olarak güncellemelere şüpheyle bakarlar. Size nasıl işler ve sorunlar çıkacacığını asla kestiremezsiniz. Bu yüzden güncellemeden önce geri dönüş önlemlerini mutlaka almalısınız.

MySQL başlarda internet üzerindeki web uygulamalarında kullanıldı. Hatta PHP&MySQL ayrılmaz ikili gibidir. Ancak MySQL 5’ten sonra büyük uygulamalar için de düşünülmeye başladı. Üstelik Dünyanın en büyük viretabanı üreticilerinen Oracle tarafından satın alındı.

MySQL 8 ile Gelen Yenilikler:

  • Roller : MySQL 8 ile kullanıcı rol grupları belirleyebilirsiniz. Önceki versiyonlarda her kullanıcı için tek tek yetki belirlemek gerekiyordu. MySQL 8’de yeni bir rol oluştuırmak için;

    CREATE ROLE ‘app_developer’, ‘app_read’, ‘app_write’;

  • Role bir yetki vermek için :

    GRANT SELECT ON app_db.* TO ‘app_read’;

  • MySQL 8’de bir kullanıya rol atamak için ;

    GRANT ‘app_read’ TO ‘read_usr1’@’%’, ‘read_usr2’@’%’;

  • İndeks Gizleme: MySQL’de bir tablonuzdaki indeksi kullanma diyebilirsiniz. Böylece kullanımı verimli olmayan indeksleri tespit edebilirsiniz.
  • Konfigürasyon Sürekliliği.  Çalışma sırasından MySQL’de konfigürasyon değişikliği “SET GLOBAL” komutu ile yapılır.  Ancak SET GLOBAL ile yapılan değişiklikler MySQL servisi yeniden başlatılınca gidecektir. İşte MySQL 8’de “SET PERSIST” ile değişiklikler artık kalıcı hae geliyor.
  • Varsayılan karakter karıştırma: Mysql8’de utf8mb4 ve utf8mb4_800_ci_ai karışık varsayılan karakter seti kullanılabiliyor.
  • Gelişmiş UUID : UUID’ler MySQL’de benzersiz kimlik tanımlamalarında kullanılır.MySQL 8 sürümü ile beraber CHAR(36) yerine VARBINARY(18) değişken tipinde tutulabilecektir. Bu değişikliğin faydası daha iyi depolama kullanımı ve performansı iyileştirecektir.
  • Model İyileştirmeleri: MySQL artık belleğe bakıp sorguların orada olup olmadığına bakacak. Farklı sorgu modelleri otomatik olarak seçilebilecektir.
  • Azalan İndeksler: Azalan indekslerin performansı artırıldı.
  • Ortak Tablo Tanımları CTE : MySQL 8 ile bereber “WITH” komutu ile bir sorguyu bir tabloya atayıp, o tabloyu kullanarak tekrar sorgu yazabiliyoruz. MYSQL CTE örnek:

    WITH cte_adi (kolon_listesi) AS (
    sorgu)
    SELECT * FROM cte_adi ;

MySQL 5.7 mi MySQL 8 Mi sorunucun net bir cevabı yok. Geliştiriciler yeni versiyonu tavsiye ederler. Ancak büyük bir yapınız varsa bunu çok iyi düşünmelisiniz. Uygulamanızın önceliği ne? Bunu cevaplandırmanız gerekiyor. Her zaman geri dönüş için bir çözüm koyarak yeni versiyona geçin. Öncelikle test ortamlarında deneyin geçişi. Ancak test ortamları da asla gereçek veri ortamını temsil etmeyebilir.