Golang hash fonksiyonlari

Merhaba arkadaşlar

Golang ile temel ve yaygın kullanılan hash algoritlamarını nasıl kullanabileceğimizle ilgili bir örnek paylaşmak istedim.

package main


import (
"crypto/md5"
"crypto/sha1"
"crypto/sha256"
"fmt"
)

func main() {

string := "Golang hash"

hmd5 := md5.Sum([]byte(string))
hsha1 := sha1.Sum([]byte(string))
hsha256 := sha256.Sum256([]byte(string))

fmt.Printf(" MD5: %x\n", hmd5)
fmt.Printf(" SHA1: %x\n", hsha1)
fmt.Printf("SHA256: %x\n", hsha256)
}

MariaDB Storage Engines

Evet arkadaşlar bugünkü yazıda MariaDB’nin aslında MySQL’den en önemli farklarından birisi olan storage enginler konusuna bakacağız.

İlk olarak bu yazıda sadece InnoDB Aria ve MyISAM ‘e bakacağız.

MariaDB konsoluna giriş yaptıktan sonra

SHOW ENGINES;

komutu ile desteklenen engine’leri görebilirsiniz.

INNODB

MySQL dökümantasyonundan aldığımız tanım:

InnoDB, yüksek güvenilirliği ve yüksek performansı dengeleyen genel amaçlı bir depolama motorudur. MySQL 5.6 sürümünde, InnoDB varsayılan MySQL depolama motorudur.

InnoDB’nin en büyük öne çıkan özelliği row-level lock yani tabloda sadece işlem yapılan satırı kilitler ve bunun yanında transaction , foreign key gibi özellikleri destekler.

Başlıca diğer özellikleri

  • Kullanıcı verilerini korumak için kesinleştirme, geri alma ve çökme kurtarma özellikleri içeren işlemlerle birlikte ACID modelini takip eder.
  • Satır düzeyinde kilitleme , çok kullanıcılı eşzamanlılığı ve performansı artırır.
  • InnoDB tabloları, birincil anahtarlara dayalı sorguları optimize etmek için diskteki verilerinizi düzenler. Her InnoDB tablosunun, birincil anahtar aramaları için I/O’yu en aza indirgemek üzere verileri düzenleyen clustered index adı verilen birincil anahtar dizini vardır.

InnoDB ile ilgili daha fazla bilgi için buraya tıklayarak mysql dökümantasyonlarını okumanızı tavsiye ediyorum.

Ayrıca zaman bulursam InnoDB ile ilgili daha detaylı yazı yazmayı planlıyorum.Yazarsam buradan url’sini veririm.

MariaDB’de InnoDB ve Percona-XtraDB

Percona-XtraDB, Supports transactions, row-level locking, foreign keys and encryption for tables

MySQL’de olduğu gibi MariaDB içinde default seçili gelen depolama moturu InnoDB’dir. Konsolunda gördüğümüz tanımdada belirtildiği şekilde transaction , satır bazlı kilit , vb gibi işlemleri desteklemektedir.Aslında forkladığın MySQL’deki InnoDB’nin dahada gelişmiş hali diyebiliriz.

MariaDB ilk versionlarında MySQL’den fork edildiği için aslında InnoDB motoru büyük oranda benzerlik ve uyumluluk gösteriyordu.Fakart MariaDB versionu ilerledikçe InnoDB’de geliştirmeler ve iyileştirmeler devam etti.

MariaDB 10.1 ve öncesinde, varsayılan InnoDB motoru Percona XtraDB’ye dayanmaktadır. XtraDB, InnoDB‘nin performansı artırılmış bir forkudur. Ancak bu versiondada geriye yönelik uyumluluk nedeniyle, sistem özelikleri hala orijinal innodb öneklerini korumaktadır.

MariaDB 10.2 ve sonraki sürümlerde, XtraDB’den vazgeçilip InnoDB motoru MySQL 5.7‘deki InnoDB‘yi temel alır. Peki bir üst sürümde neden XtraDB’den vazgeçildiği ile ilgili kendi dökümantasyonlarındaki yazıyı okumanızı tavsiye ederim.

MariaDB 10.3.7 ve sonrasında ise InnoDB motoru, MySQL’deki InnoDB’den önemli ölçüde sapmıştır. Bu nedenle, bu sürümlerde, InnoDB sürümü artık bir MySQL sürümüyle ilişkilendirilmez.

MyISAM

MyISAM , InnoDB ile değiştirilene kadar MySQL’in varsayılan depolama motoruydu. Mükemmel performansa sahip hafif, işlemsel olmayan bir motordur, sistemler arasında kopyalanması kolaydır ve küçük bir veri alanına sahiptir.

MariaDB, Aria isimli MyISAM’in iyileştirilmiş hali olarak düşünebileceğiniz bir depolama motoruna sahiptir.Çoğu senaryoda daha iyi performansa ve daha güvenli olma hedefine sahip yeni uygulamalar için MariaDB tarafından önerilmektedir..

Aria(MariaDB)

Aria depolama motoru varsayılan olarak MariaDB 5.1’den derlenmiştir. MariaDB 10.4’ten itibaren MariaDB’nin kendisinin kullandığı tüm sistem tabloları Aria depolama moturunu kullanmaktadır.

Ayrıca, diskteki dahili tablolar MyISAM tablo biçimi yerine Aria tablo biçimindedir.GROUP BY ve DISTINCT sorgularında, sorgulanan tablo farklı bir motor kullanıyor olsa bile, bu tür sorgular Aria’nın performansından yararlanabilir.

Aria depolama motoru MariaDB’de varsayılan olarak derlenmiştir. Aria, ek kurulum veya kurulum gerektirmeden MariaDB Server‘a (Enterprise ve Community) dahildir.

Aşağıdaki senaryolarda depolama motoru olarak Aria kullanmayı düşünebilirsiniz:

  • Uygulamanızda çok fazla FULL Text search varsa.
  • Uygulamanızda GROUP BY gibi aggregate sorguları fazlaysa
  • Uygulamanızda veya tablonuzda ACID uyumluluğuna veya foreign key ile ilişkilere ihtiyacın yoksa.
  • Uygulamanız şu anda MyISAM kullanıyorsa ve daha iyi hız, yedekleme ve otomatik çökme kurtarma için daha gelişmiş bir motor gerektiriyorsa.

bu senaryolarda MyISAM yerinde aria moturunu kullanabilirsiniz

Bu ilk yazıda MariaDB’deki temel depolama motorları olan InnoDB ve Aria’dan bahsetmek istedim.İlerleyen yazılarda kendi içerisinde bulunan veya sonradan yüklenebilen depolama motorlarınıda inceleyeceğiz.

Şimdilik bu kadar , teşekkürler.