MySQL kurulduğunda, dağıtım biçimiyle birlikte kurulacak sürümü seçmeliyiz. MySQL'in en son sürümü 8.0'dır ve alt sürümü 8.0.34'tür . MySQL sunucusunu kurmak için iki yöntem vardır: Geliştirme sürümü ve Genel Kullanılabilirlik.
Geliştirme Sürümü tüm son özellikleri içerir ancak üretimde kullanılması önerilmez. Genel Kullanılabilirlik Sürümü daha çok üretimde kararlı bir şekilde kullanılabilen bir üretim sürümüdür.
Ancak, 5.1 sürümünde, 5.0 sürümündeki 35 hatanın yanı sıra, yanlış sonuçlar veren 20 bilinen hata vardı. Ancak, bunların neredeyse tamamı 5.1.51 sürümü itibarıyla düzeltildi. Ayrıca, MySQL 5.1 ve 6.0 (alfa test aşamasında) veri ambarında zayıf performans gösterdi; bu kısmen tek bir sorguyu işlemek için birden fazla CPU çekirdeğini kullanamamasından kaynaklanıyor olabilir.
Varsayılan depolama motoru, işlemleri ve referans bütünlüğü kısıtlamalarını destekleyen geliştirilmiş G/Ç alt sistemine sahip InnoDB'dir.
Geliştirilmiş SMP desteği
Yarı-senkron çoğaltma.
SQL standardına uygun olarak SIGNAL ve RESIGNAL ifadeleri eklendi.
Utf16, utf32 ve utf8mb4 ek Unicode karakter kümeleri için destek.
Kullanıcı tanımlı bölümlendirme için yeni seçenekler.
Sorgu iyileştiricisi daha verimli bir performansa sahiptir.
InnoDB'de daha yüksek işlemsel verim.
Yeni NoSQL tarzı memcached API'leri.
Büyük tabloları sorgulamak için bölümlendirmede iyileştirmeler.
Çok büyük tabloların daha iyi yönetimi.
Milisaniyeleri doğru şekilde depolayan TIMESTAMP sütun türü.
Replikasyonda iyileştirmeler.
PERFORMANCE_SCHEMA aracılığıyla erişilebilen verilerin genişletilmesiyle daha iyi performans izleme.
InnoDB depolama motoru ayrıca tam metin araması ve geliştirilmiş grup onaylama performansı için destek sağlar.
Veri sözlüğü − Önceki MySQL sürümlerinde, sözlük verileri meta veri dosyalarında ve işlemsel olmayan tablolarda saklanıyordu. MySQL artık veritabanı nesneleri hakkında bilgi depolayan bir işlemsel veri sözlüğü içeriyor.
Atomik Veri Tanımlama Dili (Atomik DDL) ifadeleri − Bir Atomik DDL ifadesi, bir DDL işlemiyle ilişkili veri sözlüğü güncellemelerini, depolama motoru işlemlerini ve ikili günlük yazmalarını tek bir atomik işlemde birleştirir.
Yükseltme prosedürü − Daha önce, MySQL'in yeni bir sürümünün kurulumundan sonra, MySQL sunucusu bir sonraki başlatmada veri sözlüğü tablolarını otomatik olarak yükseltiyordu; bundan sonra DBA'nın mysql şemasındaki sistem tablolarının yanı sıra 'sys' şeması ve kullanıcı şemaları gibi diğer şemalardaki nesneleri yükseltmek için mysql_upgrade'i manuel olarak çağırması bekleniyordu.
MySQL 8.0.16 itibarıyla sunucu, mysql_upgrade tarafından daha önce işlenen görevleri de gerçekleştirir. Ek olarak, sunucu yardım tablolarının içeriklerini de günceller. Yeni bir --upgrade sunucu seçeneği, sunucunun otomatik veri sözlüğü ve sunucu yükseltme işlemlerini nasıl gerçekleştireceği üzerinde kontrol sağlar.
Oturum Yeniden Kullanımı − MySQL Server artık, bir istemcinin yeni bağlantılar için oturum yeniden kullanımını talep etmesine izin verilen süreyi belirleyen bir oturum önbelleğini sunucunun ne kadar süreyle koruduğunu kontrol etmek için bir zaman aşımı ayarıyla varsayılan olarak SSL oturum yeniden kullanımını destekler. Tüm MySQL istemci programları oturum yeniden kullanımını destekler. Ek olarak, C uygulamaları artık şifreli bağlantılar için oturum yeniden kullanımını etkinleştirmek üzere C API yeteneklerini kullanabilir.
Güvenlik ve hesap yönetimi − Güvenlik büyük ölçüde iyileştirildi ve hesap yönetiminde DBA'lerin daha fazla esnekliğe sahip olması sağlandı.
Kaynak yönetimi − MySQL artık kaynak gruplarının oluşturulmasını ve yönetilmesini destekliyor ve sunucu içinde çalışan iş parçacıklarının belirli gruplara atanmasına izin veriyor, böylece iş parçacıkları grubun kullanımına açık kaynaklara göre yürütülüyor.
Tablo şifreleme yönetimi − Tablo şifrelemesi artık şifreleme varsayılanlarını tanımlayıp uygulayarak küresel olarak yönetilebilir.
InnoDB geliştirmeleri − Otomatik artan sayaç değeri, dizin ağacı bozulması, mem-cached eklentisi, InnoDB_deadlock_detect, tablo alanı şifreleme özelliği, depolama motoru, InnoDB_dedicated_server, geçici tablo alanında geçici tablolar oluşturma, zlib kütüphanesi vb. gibi çeşitli InnoDB geliştirmeleri eklendi.
Karakter seti desteği − Varsayılan karakter seti latin1'den utf8mb4'e değiştirildi. Utf8mb4 karakter setinde, MySQL'de Unicode için kullanılabilen ilk Japonca diline özgü sıralama olan utf8mb4_ja_0900_as_cs dahil olmak üzere birkaç yeni sıralama var.
JSON geliştirmeleri − MySQL'in JSON işlevselliğinde çeşitli geliştirmeler ve eklemeler yapıldı.
Veri türü desteği − MySQL artık veri türü belirtimlerinde varsayılan değerler olarak ifadelerin kullanımını destekliyor. Bu, daha önce hiç varsayılan değer atanamayan BLOB, TEXT, GEOMETRY ve JSON veri türleri için varsayılan değerler olarak ifadelerin kullanımını içerir.
Optimizer − Optimizer da çeşitli şekillerde geliştirildi.
Geliştirilmiş karma birleştirme performansı − MySQL 8.0.23, karma birleştirmeler için kullanılan karma tablosunu yeniden uygulayarak karma birleştirme performansında çeşitli iyileştirmeler sağlıyor.
Ortak tablo ifadeleri − MySQL artık hem özyinelemeli hem de özyinelemesiz ortak tablo ifadelerini destekliyor.
Pencere işlevleri − MySQL artık bir sorgudaki her satır için, o satırla ilgili satırları kullanarak bir hesaplama gerçekleştiren pencere işlevlerini destekliyor.
Yanal türetilmiş tablolar − Artık türetilmiş bir tablonun önüne, aynı FROM ifadesinde önceki tabloların sütunlarına başvurulabileceğini (bunlara bağımlı olabileceğini) belirtmek için LATERAL anahtar sözcüğü eklenebilir.
Tek tablolu DELETE ifadelerindeki takma adlar − MySQL 8.0.16 ve sonrasında, tek tablolu DELETE ifadeleri tablo takma adlarının kullanımını destekler.
Düzenli ifade desteği − Daha önce MySQL, düzenli ifade operatörlerini desteklemek için Henry Spencer düzenli ifade kitaplığını kullanıyordu.
Dahili geçici tablolar − TempTable depolama motoru, bellek içi dahili geçici tablolar için varsayılan motor olarak MEMORY depolama motorunun yerini alır.
Kayıt Tutma − Yeni sürümlerde kayıt tutma işlemi de iyileştirildi.
Tüm bunların yanı sıra MySQL'in yeni versiyonlarına eklenen birçok özellik daha var.
utf8mb3 karakter kümesi kullanım dışıdır. Lütfen bunun yerine utf8mb4 kullanın.
ucs2, macroman ve macce, dec, hp8 de kullanımdan kaldırıldı. Bunun yerine utf8mb4 kullanmalısınız.
Kullanıcı tanımlı sıralamalar kullanım dışıdır.
sha256_password kullanım dışıdır.
validate_password eklentisinin biçimi hala kullanılabilir, ancak kullanım dışıdır.
ALTER TABLESPACE ve DROP TABLESPACE ifadeleri için ENGINE ifadesi kullanımdan kaldırılmıştır.
PAD_CHAR_TO_FULL_LENGTH SQL modu kullanım dışı bırakıldı.
FLOAT ve DOUBLE (ve tüm eşanlamlıları) türündeki sütunlar için AUTO_INCREMENT desteği kullanımdan kaldırılmıştır.
UNSIGNED niteliği, FLOAT, DOUBLE ve DECIMAL (ve tüm eşanlamlıları) türündeki sütunlar için kullanım dışıdır
FLOAT(M,D) ve DOUBLE(M,D) sözdizimi kullanım dışıdır.
Sayısal veri türleri için ZEROFILL niteliği ve tamsayı veri türleri için görüntüleme genişliği niteliği kullanım dışıdır.
BINARY niteliği kullanım dışıdır. Ancak, bir veri türünü veya karakter kümesini belirtmek için BINARY kullanımı değişmeden kalır.
ASCII ve UNICODE kullanım dışıdır (MySQL 8.0.28 ve üzeri). Her iki durumda da CHARACTER SET kullanın.
Geliştirme Sürümü tüm son özellikleri içerir ancak üretimde kullanılması önerilmez. Genel Kullanılabilirlik Sürümü daha çok üretimde kararlı bir şekilde kullanılabilen bir üretim sürümüdür.
MySQL Sürümleri
MySQL, birçok küçük ve büyük işletme tarafından kullanılan hızlı, kullanımı kolay bir RDBMS'dir. İsveçli bir şirket olan MySQL AB tarafından geliştirilmekte, pazarlanmakta ve desteklenmektedir. MySQL ilk olarak 23 Mayıs 1995'te dahili olarak piyasaya sürüldü ve Oracle, Sun Microsystems'ı satın alana kadar 3.19'dan 5.1'e kadar olan sürümler piyasaya sürüldü.
Sürüm 5.1
MySQL'in 5.1 versiyonu, olay zamanlayıcı, bölümlendirme, eklenti API'si, satır tabanlı çoğaltma, sunucu kayıt tabloları gibi ekstra özellikler eklenerek 27 Kasım 2008'de üretime sunuldu.Ancak, 5.1 sürümünde, 5.0 sürümündeki 35 hatanın yanı sıra, yanlış sonuçlar veren 20 bilinen hata vardı. Ancak, bunların neredeyse tamamı 5.1.51 sürümü itibarıyla düzeltildi. Ayrıca, MySQL 5.1 ve 6.0 (alfa test aşamasında) veri ambarında zayıf performans gösterdi; bu kısmen tek bir sorguyu işlemek için birden fazla CPU çekirdeğini kullanamamasından kaynaklanıyor olabilir.
Sürüm 5.5
MySQL Server 5.5, Aralık 2010 itibarıyla Genel Kullanıma Sunulan bir Sürümdü. Bu sürümdeki geliştirilmiş özellikler şunlardır:Varsayılan depolama motoru, işlemleri ve referans bütünlüğü kısıtlamalarını destekleyen geliştirilmiş G/Ç alt sistemine sahip InnoDB'dir.
Geliştirilmiş SMP desteği
Yarı-senkron çoğaltma.
SQL standardına uygun olarak SIGNAL ve RESIGNAL ifadeleri eklendi.
Utf16, utf32 ve utf8mb4 ek Unicode karakter kümeleri için destek.
Kullanıcı tanımlı bölümlendirme için yeni seçenekler.
Sürüm 5.6
MySQL 5.6'nın Genel Kullanıma Sunulması Şubat 2013'te gerçekleşti. Bu sürümün yeni özellikleri şunlardır:Sorgu iyileştiricisi daha verimli bir performansa sahiptir.
InnoDB'de daha yüksek işlemsel verim.
Yeni NoSQL tarzı memcached API'leri.
Büyük tabloları sorgulamak için bölümlendirmede iyileştirmeler.
Çok büyük tabloların daha iyi yönetimi.
Milisaniyeleri doğru şekilde depolayan TIMESTAMP sütun türü.
Replikasyonda iyileştirmeler.
PERFORMANCE_SCHEMA aracılığıyla erişilebilen verilerin genişletilmesiyle daha iyi performans izleme.
InnoDB depolama motoru ayrıca tam metin araması ve geliştirilmiş grup onaylama performansı için destek sağlar.
Sürüm 5.7
MySQL 5.7, Ekim 2015'te genel kullanıma sunuldu. MySQL 5.7, MySQL 5.7.8 ve sonraki sürümlerin alt sürümleri için, Ağustos 2015 itibarıyla RFC 7159 tarafından tanımlanan yerel JSON veri türü desteği sağlandı.
Sürüm 8.0
MySQL Server 8.0, yeni geliştirilmiş özellikleriyle Nisan 2018'de duyuruldu. Şu anda MySQL 8.0'daki küçük sürümler 8.0.0'dan 8.0.34'e kadar başlıyor. Önceki MySQL Server 8.0.0-dmr (Geliştirme Aşaması Sürümü olarak) 12 Eylül 2016'da duyuruldu.
MySQL 8.0'da Eklenen Özellikler
MySQL'in son sürümü 8.0'dır. Aşağıdaki özellikler yeni eklenen özelliklerden bazılarıdır:Veri sözlüğü − Önceki MySQL sürümlerinde, sözlük verileri meta veri dosyalarında ve işlemsel olmayan tablolarda saklanıyordu. MySQL artık veritabanı nesneleri hakkında bilgi depolayan bir işlemsel veri sözlüğü içeriyor.
Atomik Veri Tanımlama Dili (Atomik DDL) ifadeleri − Bir Atomik DDL ifadesi, bir DDL işlemiyle ilişkili veri sözlüğü güncellemelerini, depolama motoru işlemlerini ve ikili günlük yazmalarını tek bir atomik işlemde birleştirir.
Yükseltme prosedürü − Daha önce, MySQL'in yeni bir sürümünün kurulumundan sonra, MySQL sunucusu bir sonraki başlatmada veri sözlüğü tablolarını otomatik olarak yükseltiyordu; bundan sonra DBA'nın mysql şemasındaki sistem tablolarının yanı sıra 'sys' şeması ve kullanıcı şemaları gibi diğer şemalardaki nesneleri yükseltmek için mysql_upgrade'i manuel olarak çağırması bekleniyordu.
MySQL 8.0.16 itibarıyla sunucu, mysql_upgrade tarafından daha önce işlenen görevleri de gerçekleştirir. Ek olarak, sunucu yardım tablolarının içeriklerini de günceller. Yeni bir --upgrade sunucu seçeneği, sunucunun otomatik veri sözlüğü ve sunucu yükseltme işlemlerini nasıl gerçekleştireceği üzerinde kontrol sağlar.
Oturum Yeniden Kullanımı − MySQL Server artık, bir istemcinin yeni bağlantılar için oturum yeniden kullanımını talep etmesine izin verilen süreyi belirleyen bir oturum önbelleğini sunucunun ne kadar süreyle koruduğunu kontrol etmek için bir zaman aşımı ayarıyla varsayılan olarak SSL oturum yeniden kullanımını destekler. Tüm MySQL istemci programları oturum yeniden kullanımını destekler. Ek olarak, C uygulamaları artık şifreli bağlantılar için oturum yeniden kullanımını etkinleştirmek üzere C API yeteneklerini kullanabilir.
Güvenlik ve hesap yönetimi − Güvenlik büyük ölçüde iyileştirildi ve hesap yönetiminde DBA'lerin daha fazla esnekliğe sahip olması sağlandı.
Kaynak yönetimi − MySQL artık kaynak gruplarının oluşturulmasını ve yönetilmesini destekliyor ve sunucu içinde çalışan iş parçacıklarının belirli gruplara atanmasına izin veriyor, böylece iş parçacıkları grubun kullanımına açık kaynaklara göre yürütülüyor.
Tablo şifreleme yönetimi − Tablo şifrelemesi artık şifreleme varsayılanlarını tanımlayıp uygulayarak küresel olarak yönetilebilir.
InnoDB geliştirmeleri − Otomatik artan sayaç değeri, dizin ağacı bozulması, mem-cached eklentisi, InnoDB_deadlock_detect, tablo alanı şifreleme özelliği, depolama motoru, InnoDB_dedicated_server, geçici tablo alanında geçici tablolar oluşturma, zlib kütüphanesi vb. gibi çeşitli InnoDB geliştirmeleri eklendi.
Karakter seti desteği − Varsayılan karakter seti latin1'den utf8mb4'e değiştirildi. Utf8mb4 karakter setinde, MySQL'de Unicode için kullanılabilen ilk Japonca diline özgü sıralama olan utf8mb4_ja_0900_as_cs dahil olmak üzere birkaç yeni sıralama var.
JSON geliştirmeleri − MySQL'in JSON işlevselliğinde çeşitli geliştirmeler ve eklemeler yapıldı.
Veri türü desteği − MySQL artık veri türü belirtimlerinde varsayılan değerler olarak ifadelerin kullanımını destekliyor. Bu, daha önce hiç varsayılan değer atanamayan BLOB, TEXT, GEOMETRY ve JSON veri türleri için varsayılan değerler olarak ifadelerin kullanımını içerir.
Optimizer − Optimizer da çeşitli şekillerde geliştirildi.
Geliştirilmiş karma birleştirme performansı − MySQL 8.0.23, karma birleştirmeler için kullanılan karma tablosunu yeniden uygulayarak karma birleştirme performansında çeşitli iyileştirmeler sağlıyor.
Ortak tablo ifadeleri − MySQL artık hem özyinelemeli hem de özyinelemesiz ortak tablo ifadelerini destekliyor.
Pencere işlevleri − MySQL artık bir sorgudaki her satır için, o satırla ilgili satırları kullanarak bir hesaplama gerçekleştiren pencere işlevlerini destekliyor.
Yanal türetilmiş tablolar − Artık türetilmiş bir tablonun önüne, aynı FROM ifadesinde önceki tabloların sütunlarına başvurulabileceğini (bunlara bağımlı olabileceğini) belirtmek için LATERAL anahtar sözcüğü eklenebilir.
Tek tablolu DELETE ifadelerindeki takma adlar − MySQL 8.0.16 ve sonrasında, tek tablolu DELETE ifadeleri tablo takma adlarının kullanımını destekler.
Düzenli ifade desteği − Daha önce MySQL, düzenli ifade operatörlerini desteklemek için Henry Spencer düzenli ifade kitaplığını kullanıyordu.
Dahili geçici tablolar − TempTable depolama motoru, bellek içi dahili geçici tablolar için varsayılan motor olarak MEMORY depolama motorunun yerini alır.
Kayıt Tutma − Yeni sürümlerde kayıt tutma işlemi de iyileştirildi.
Tüm bunların yanı sıra MySQL'in yeni versiyonlarına eklenen birçok özellik daha var.
MySQL 8.0'da Kullanımdan Kaldırılan Özellikler
Aşağıda MySQL 8.0'da kullanımdan kaldırılan ve gelecekteki serilerde kaldırılabilecek birçok özellikten bazıları listelenmiştir. Bahsedilen birkaç alternatif uygulamalar tarafından kullanılabilir.utf8mb3 karakter kümesi kullanım dışıdır. Lütfen bunun yerine utf8mb4 kullanın.
ucs2, macroman ve macce, dec, hp8 de kullanımdan kaldırıldı. Bunun yerine utf8mb4 kullanmalısınız.
Kullanıcı tanımlı sıralamalar kullanım dışıdır.
sha256_password kullanım dışıdır.
validate_password eklentisinin biçimi hala kullanılabilir, ancak kullanım dışıdır.
ALTER TABLESPACE ve DROP TABLESPACE ifadeleri için ENGINE ifadesi kullanımdan kaldırılmıştır.
PAD_CHAR_TO_FULL_LENGTH SQL modu kullanım dışı bırakıldı.
FLOAT ve DOUBLE (ve tüm eşanlamlıları) türündeki sütunlar için AUTO_INCREMENT desteği kullanımdan kaldırılmıştır.
UNSIGNED niteliği, FLOAT, DOUBLE ve DECIMAL (ve tüm eşanlamlıları) türündeki sütunlar için kullanım dışıdır
FLOAT(M,D) ve DOUBLE(M,D) sözdizimi kullanım dışıdır.
Sayısal veri türleri için ZEROFILL niteliği ve tamsayı veri türleri için görüntüleme genişliği niteliği kullanım dışıdır.
BINARY niteliği kullanım dışıdır. Ancak, bir veri türünü veya karakter kümesini belirtmek için BINARY kullanımı değişmeden kalır.
ASCII ve UNICODE kullanım dışıdır (MySQL 8.0.28 ve üzeri). Her iki durumda da CHARACTER SET kullanın.


