Η MySQL είιναι πλέον η standard λύση στις σχεσιακές βάσεις δεδομένων όσο αφορά την κατασκευή εφαρμογών, web ιστοφιλοξενίας web hosting. Είναι ένα από τα βασικά μέρη αυτού του συστήματος είναι η storage enginee είναι το λογισμικό που είναι υπεύθυνο για τα SQL λειτουργείς που συμβαίνουν σε διαφορετικού τύπου πίνακες.

Εδώ υπάρχουν αρκετές storage engines όπως είναι η MyISAM, InnoDB κ.α οποίες βρίσκονται στο storage engine API του mysql server. Με απλά λόγια είναι το υποκείμενο λογισμικό που είναι υπεύθυνο για τα CRUD operation δηλαδή δημιουργία, ανάγνωση, ενημέρωση και διαγραφή δεδομένων. O web developer ή κάποιος που ασχολείται με devops θα πρέπει να ξέρει τις διαφορές

MyISAM

Η default storage που χρησιμοποιείται είναι η MyISAM η οποία έχει αρκετά πλεονεκτήματα όπως full text indexing, το οποίο είναι πολύ χρήσιμο για ερωτήματα που κάνουν search στη βάση με natural language. Άλλα πλεονέκτημα είναι η αυτόματη ή χειροκίνητη επιδιόρθωση πινάκων που χρησιμοποιούν αυτή τη storage engine καθώς έχει γρηγορότερα reads.

Μερικά μειονεκτήματα είναι ότι δεν υποστηρίζει Transactions και row-level locking αλλα table-level locking , ακεραιότητα δεδομένων και τα χαρακτηριστικά ACID - (Atomicity, Consistency, Isolation, Durability) καθώς και ξένα κλειδιά (Foreign Keys).

InnoDB

Η άλλη κύρια storage engine της mysql είναι η InnoDB και έχει γίνει default πλεον, η οποία είναι σχεδιασμένη ώστε να υποστηρίζει transactions. Τα transactions διασφαλίζουν την εκτέλεση queries τα οποία είναι συνεχόμενα και το ένα εξαρτάται από το άλλο.

Ένα άλλο χρήσιμο χαρακτηριστικό της InnoDB είναι το row-level locking με το οποίο αποφεύγονται προβλήματα που δημιουργούνται όταν δύο queries τύπου insert ή update εκτελούνται την ίδια χρονική στιγμή. Η επιπλέον η ακεραιοτητα δεδομένων και τα Χαρακτηριστικά ACID υποστηρίζονται. Επιπλέον storage engines που υποστηρίζονται είναι

  • Ndbcluster
  • CSV
  • Blackhole
  • Memory
  • Merge
  • Example
  • Archive
  • Federated

Επιπλέον εκτός από τη MySQL ως ένα RDBMS, ένα αξιοσημείωτο fork της mysql είναι η MariaDB, η οποία υποστήριζει ίδιες storage engine και έχει εμπλουτίσει το σύστημα της με περισσότερες. Μερικές διαφορές είναι ότι MariaDB μπορεί να υποστήριξει μεγαλύτερo connection pool +200.000 και γρηγορότερο database replication.