Elektronik Blog

Man ist nicht Programmierer {Man lebt es}

Startseite

Was ist MySQL?

Mit MySQL wird ein Datenbankverwaltungssystem gemeint. Es wird als Open Source Software als auch kommerzielle Enterpriseversion angeboten für verschiedene Betriebssysteme. Darunter Microsoft Windows, Linux,macOS,Solaris und FreeBSD MySQL in der heutigen Zeit ist nicht mehr wegzudenken die MySQL Datenbanken auch auf einem USB Stick auszuführen. Hierbei wechselt man einfach den Ordner \Programme\xampp\mysql\data und diesen in der Einstellung XAMPP entsprechen zu \Programme\xampp\mysql\bin\my.cnf und zu guter letzt wechselt man die Variablen zu datadir=“C:/Programme/xampp/mysql/data“ „). MySQL bietet Ihnen die Datenbank für Ihre Website Projekte.

Das Schwedische Unternehmen MySQL Ab entwickelte im Jahre 1994 das Datenbankverwaltungssystem MySQL. 2008 wurde MySQL übernommen von Sun Microsystems. Und Oracle kaufte im Jahre 2010 das Datenbanksystem MySQL ab.

Michael Widenius war Mitgründer der Firma MySQL deshalb heißt es auch so.

Wo kommt MySQL denn zu dem Einsatz?

Es wird häufig für die Datenspeicherung in Webservices bevorzugt. In Verbindung zwischen MySQL wird öfters der Webserver Apache bzw. Nginx mit der PHP Sprache eingesetzt. Es wird dann Lamp Stack genannt. (Linux,Apache,MySQL,PHP) oder einfach das e steht für (e)nginx.

Es ist einfach das populärste Datenbanksystem aus diesem Grund benutzen die meisten genau diese Architektur. MySQL wird nicht nur von Hobby Designern oder kleinen Privatpersonen verwendet sondern auch von den Top Firmen wie Twitter, Facebook, Flickr und natürlich auch die Weltbekannte Video Plattform YouTube. Im jetzigen Zeitalter wird MySQL von MariaDB abgelöst weil man es einfach nicht mehr benötigt. Da wird hier von einer Kompatibilität sprechen von MariaDB und MySQL sind die Datenbanken eigentlich recht einfach migriert. Der Mitgründer Monty Vildenius hat den neuen Fork entwickelt um mehrere Features den Datenbanken zu geben.

Schnittstellen

Für eine gute Performance wird hauptsächlich ANSI C und ANSO C++ implementiert.

Wie bereits oben erwähnt kann MySQL für vielerlei Betriebssysteme verwendet werden wie z.B. Windows Mac… und natürlich auch Unix.

Sie können es sich ganz einfach so vorstellen es besteht ein Server auf dem Daten gespeicher sind und hierbei werden mehrere Anfragen an den Server gesendet wo ist das Bild gespeichert wo ist die Datei gespeichert und vieles weiteres.

Struktur

Auf dem Datenbankmanagementsystem, dem MySQL Server können viele Datenbanken erstellt werden. Natürlich können in einer MySQL Datenbank mehrere Tabellen angelegt werden das ist ja auch das wichtigste im Bereich Datenbanken. Der Standardport ist der MySQL 3306 im Transmission Control Protocol (TCP).

Auf dem MySQL Server (Datenbankmanagementsystem) können viele Daten erstellt werden. Es werden natürlich in einer Datenbank mehrere Tabellen angelegt wie Sie oben bereits gelernt haben. Somit wird für jede Datenbank ein neuer Order angelegt seitens MySQL, in dem die Struktur der Website abgespeichert ist. Es hängt hierbei von der Speicherengine ab wie die Dateiendung heißt.

Die Tabellen können hierbei natürlich von einem anderen Typ bestehen. Der Tabellentyp legt fest, welches Speichersubsystem verwendet wird. Die Tabelle wird mehrere Spalten enthalten, in denen Daten eines festgelegten Datentyps gespeichert werden. (z.B. Integer (ganze zahlen) oder natürlich auch Strings (Zeichenketten)). Das Betriebssystem limitiert hier grundsätzlich nur wie große Tabellen erstellt werden können.

Video Erklärung was MySQL ist

Verarbeitung einer Anfragen

Ein Client kann wenn er möchte Datenbankanfragen an einen MySQL Server senden. Der ist dafür zuständigem die Anfragen performant zu bearbeiten. Hierbei wird erst der Query-Cache befragt und bei nicht vorhandenem Ergebnis die Anfrage gespart, optimiert und auch ausgeführt. Das Ergebnis wird somit zurückgegeben.

Query-Cache

MySQL kann um die Performance zu verbessern Anfragen in einem Zwischenspeicher (Cache) ablegen. Somit ist gewährleistet wenn eine identische Anfrage an den Server gestellt wird der Zwischenspeicher einfach nur in den Cache schauen muss und die Anfrage somit bereits geladen ist im Hintergrund da es bereits einmal ausgeführt wurden. Hierbei wird dann nicht direkt auf die Datenbank neu zugegriffen sondern einfach nur in den Cache geschaut und somit wird viel Zeit gespart. Aus diesem Grund gibt es den Query Cache.

Parsing

Wenn eine Query ausgeführt wird dann wird zunächst erst überprüft ob der Syntax gültig ist. Sie können es sich so vorstellen das die Komponenten zerlegt werden. Im gleichen Moment werden einige grundlegende Informationen von dem Query gesammelt, wie der Art der Query (z.B. INSERT, SET oder der Grant). Am Ende kennt MySQl den Pare-Baum. Der danach optimiert wird.

Optimierung

Wenn eine Anfrage gültig erscheint wird die Anfrage danach direkt optimiert falls nicht wird eine neue Datenbank Anfrage durchgeführt. Hierbei wird der Optimizer nach dem besten Weg suchen um die Query bestmöglich bearbeiten zu können. Dort wird die Anzahl der lesenden Datensätze möglichst gering gehalten. Dort wird eine Abfragereihenfolge (JOIN) verwendet um die Datensätze optimal abzufragen. Die Tabellen wo nicht benötigt werden komplett aus dem JOIN entfernt. Zur Lokalisierung der Datensätze wird unter anderem die Lokalisierung des Index angeschaut. Oder ob es bessere wäre hier einen Table-Scan durchzuführen. (Die Komplette Tabelle zu durchlaufen.

Der Optimizer bewertet die Verfügung. Hier wird für jede Möglichkeit mit dem Heuristiken geschätzt. Der Kommand für den Optimizer lässt sich mit dem EXPLAIN command nachvollziehen. Dieser Befehl (von einer bestimmten Query). Beauftragt wie Sie bereits gelernt haben den Optimizer zur Beantwortung der Query. Auf diese Art wird Hintergrundwissen ermittelt was im Bereich Datenbanken sehr wichtig ist. Inwiefern die Query optimiert werden kann um es schneller auszuführen.

Geschichte zu MySQL

Nun widmen wir uns ein wenig der Geschichte von MySQL.

David Axmark und Michael begannen 1994 mit der Entwicklung der Datenbank MySQL. Es wurde als Klon für mSQL entwickelt, um Datenbanken des maskengesteuerten Datenbankssystem UNIREG in Web Anwendungen verfügbar zu machen. (UNIREG war von Michal Widenius 1979 entwickelt und umgeschrieben worden in die Sprache C. Damit das Datenbanksystem auch auf UNIX System läuft. Hiermit wurde eine komplette Kompatibilität zwischen mSQL und dem heutigen MySQL gesetzt.

Nach dem internen Release am 23. Mai 1995 wurde die Software 1997 direkt unter der Versionsnummer 3.1 veröffentlicht. Um zu Signalisieren, Dass es auf einem Kern basiert ist, der schon eine lange Geschichte hat. Am Anfang war die Datenbank auf große Datenmengen und Performance ausgelegt. Teils auf Kosten von Stabilität und Verfügbarkeit. Die Funktionen waren zu dieser Zeit zunächst beschränkt. Somit gab es am Anfang nur wenige Tabellentypen und keine Transaktionen. Auf Wunsch der Anwender werden neuen Features implementiert. Bei MySQL hat es ein großes „Mitspracherecht“ gegeben.

Mit der im Jahre 2001 veröffentlichten Version 3.23 verfügte MySQL über 2 Tabellentypen mit Transaktionen wobei (InnoDB) den ACID-Krirterien genügte. Hierbei sind alle Tabellentypen mit den Transaktionen gleich. So besitzt der Typ MyISAM bereits in der früheren Version 3.23 eine Volltext-Suche die im InnoDB nicht implementiert war.