Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Datenbankmanagementsysteme gehören zum Kern vieler Unternehmen. Selbst wenn ein Unternehmen nicht technologieorientiert ist, muss es Daten schnell, sicher und zuverlässig speichern, darauf zugreifen und sie bearbeiten können. Aufgrund der COVID-19-Pandemie werden viele Bereiche, die sich traditionell gegen die digitale Transformation gesträubt haben, wie z. B. die Justizsysteme in vielen Ländern, jetzt durch Technologie integriert, und Online-Shopping und Arbeiten von zu Hause aus sind beliebter als je zuvor.
Aber es sind nicht nur Katastrophen, die solch weitreichende Veränderungen bewirken. Mit der Einführung von 5G werden bald viel mehr Maschinen mit dem Internet verbunden sein als Menschen. Schon jetzt werden riesige Datenmengen gesammelt, gespeichert und genutzt, um maschinelle Lernmodelle, künstliche Intelligenz und vieles mehr zu trainieren. Wir leben am Anfang der nächsten Revolution.
Um mehr Daten - vor allem unstrukturierte Daten - speichern zu können, sind verschiedene Datenbanktypen entstanden, darunter NoSQL-Datenbanken wie MongoDB, Cassandra und Redis. Die traditionellen SQL-Datenbanken sind jedoch nach wie vor beliebt, und es gibt keine Anzeichen dafür, dass sie in naher Zukunft verschwinden werden. Und in der SQL-Welt ist die beliebteste Open-Source-Lösung zweifelsohne MySQL.
Die beiden Autoren dieses Buches haben mit vielen Kunden aus allen Teilen der Welt zusammengearbeitet. Dabei haben wir viele Lektionen gelernt und eine Vielzahl von Anwendungsfällen erlebt, die von geschäftskritischen monolithischen Anwendungen bis hin zu einfacheren Microservices-Anwendungen reichen. Dieses Buch ist voll von Tipps und Ratschlägen, von denen wir glauben, dass sie den meisten Lesern bei ihrer täglichen Arbeit helfen werden.
Für wen dieses Buch ist
Dieses Buch richtet sich in erster Linie an Personen, die MySQL zum ersten Mal verwenden oder es als zweite Datenbank erlernen. Wenn du zum ersten Mal in die Datenbankwelt einsteigst, führen dich die ersten Kapitel in die Datenbankdesignkonzepte ein und zeigen dir, wie du MySQL auf verschiedenen Betriebssystemen und in der Cloud einsetzen kannst.
Für diejenigen, die aus einem anderen Ökosystem wie Postgres, Oracle oder SQL Server kommen, behandelt das Buch Backup-, Hochverfügbarkeits- und Disaster-Recovery-Strategien.
Wir hoffen, dass alle Leserinnen und Leser dieses Buch als einen guten Begleiter zum Erlernen oder Wiederholen von Grundlagen, von der Architektur bis hin zu Ratschlägen für dieProduktionsumgebung, empfinden werden.
Wie dieses Buch organisiert ist
Wir stellen viele Themen vor, vom grundlegenden Installationsprozess über Datenbankdesign, Backups und Wiederherstellung bis hin zur CPU-Leistungsanalyse und Fehleruntersuchung. Wir haben das Buch in vier Hauptteile gegliedert:
-
Starten mit MySQL
-
MySQL verwenden
-
MySQL in der Produktion
-
Verschiedene Themen
Schauen wir uns an, wie wir die Kapitel gegliedert haben.
Starten mit MySQL
Kapitel 1, Installation von MySQL, erklärt, wie du die MySQL-Software auf verschiedenen Betriebssystemen installierst und konfigurierst. Dieses Kapitel ist viel ausführlicher als die meisten Bücher. Wir wissen, dass diejenigen, die ihre Karriere mit MySQL beginnen, oft nicht mit den verschiedenen Linux-Distributionen und Installationsoptionen vertraut sind, und das Ausführen der MySQL-"Hallo-Welt" erfordert weit mehr Schritte als das Kompilieren einer Hallo-Welt in einer beliebigen Programmiersprache. Du erfährst, wie du MySQL unter Linux, Windows, macOS und Docker einrichtest und wie du Instanzen schnell für Tests bereitstellst.
MySQL verwenden
Bevor wir uns mit der Erstellung und Nutzung von Datenbanken beschäftigen, schauen wir uns in Kapitel 2, Modellierung und Entwurf von Datenbanken, das richtige Datenbankdesign an. Du lernst, wie du auf die Funktionen deiner Datenbank zugreifen kannst und wie die Informationen in deiner Datenbank miteinander in Beziehung stehen. Du wirst sehen, dass ein schlechtes Datenbankdesign nur schwer zu ändern ist und zu Leistungsproblemen führen kann. Wir stellen das Konzept der starken und schwachen Entitäten und ihrer Beziehungen(Fremdschlüssel) vor und erklären den Prozess der Normalisierung. In diesem Kapitel wird auch gezeigt, wie du Datenbankbeispiele wie sakila
, world
und employees
herunterlädst und konfigurierst.
In Kapitel 3, Grundlegendes SQL, lernen wir die bekannten SQL-Befehle kennen, die zu den CRUD-Operationen (Erstellen, Lesen, Aktualisieren und Löschen) gehören. Du erfährst, wie du Daten aus einer bestehenden MySQL-Datenbank liest, Daten in ihr speicherst und vorhandene Daten manipulierst.
In Kapitel 4, Arbeiten mit Datenbankstrukturen, erklären wir, wie du eine neue MySQL-Datenbank erstellst und Tabellen, Indizes und andere Datenbankstrukturen anlegst und veränderst.
Kapitel 5, Fortgeschrittene Abfragen, behandelt fortgeschrittene Operationen wie verschachtelte Abfragen und die Verwendung verschiedener MySQL-Datenbank-Engines. In diesem Kapitel lernst du, wie du komplexere Abfragen durchführen kannst.
MySQL in der Produktion
Nachdem du nun weißt, wie du MySQL installierst und Daten manipulierst, musst du als Nächstes verstehen, wie MySQL den gleichzeitigen Zugriff auf dieselben Daten handhabt. Die Konzepte der Isolation, Transaktion und Deadlocks werden in Kapitel 6, Transaktionen und Sperren, behandelt.
In Kapitel 7, Mehr tun mit MySQL, lernst du komplexere Abfragen kennen, die du in MySQL durchführen kannst, und erfährst, wie du den Abfrageplan beobachten kannst, um zu prüfen, ob die Abfrage effizient ist oder nicht. Außerdem erklären wir dir die verschiedenen Engines, die in MySQL verfügbar sind (InnoDB und MyISAM sind die bekanntesten).
In Kapitel 8, Verwaltung von Benutzern und Berechtigungen, lernst du, wie du Benutzer in der Datenbank anlegen und löschen kannst. Dieser Schritt ist einer der wichtigsten im Hinblick auf die Sicherheit, da Benutzer mit mehr Berechtigungen als nötig der Datenbank und dem Ruf des Unternehmens erheblichen Schaden zufügen können. Du erfährst, wie du Sicherheitsrichtlinien aufstellst, Berechtigungen vergibst und entziehst und den Zugang zu bestimmten Netzwerk-IPs einschränkst.
Kapitel 9, Verwendung von Optionsdateien, behandelt die MySQL-Konfigurationsdateien oder Optionsdateien, die alle notwendigen Parameter enthalten, um MySQL zu starten und seine Leistung zu optimieren. Wer sich mit MySQL auskennt, wird die Konfigurationsdatei /etc/my.cnf wiedererkennen. Du wirst auch sehen, dass es möglich ist, den Benutzerzugang mit speziellen Optionsdateien zu konfigurieren.
Datenbanken ohne Sicherungsrichtlinien sind früher oder später dem Untergang geweiht. In Kapitel 10, Datensicherung und Wiederherstellung, besprechen wir die verschiedenen Arten von Datensicherungen(logisch und physisch), die verfügbaren Optionen zur Durchführung dieser Aufgabe und die Optionen, die für große Produktionsdatenbanken am besten geeignet sind.
In Kapitel 11, Konfiguration und Tuning des Servers, werden die wesentlichen Parameter besprochen, auf die du bei der Einrichtung eines neuen Servers achten musst. Wir stellen Formeln dafür bereit und helfen dir zu erkennen, ob ein Parameterwert der richtige für die Datenbankauslastung ist.
Verschiedene Themen
Nachdem du die grundlegenden Dinge gelernt hast, ist es an der Zeit, weiterzugehen. In Kapitel 12, Überwachung von MySQL-Servern, lernst du, wie du deine Datenbank überwachen und Daten sammeln kannst. Da sich das Verhalten der Datenbankauslastung je nach Anzahl der Benutzer, der Transaktionen und der bearbeiteten Daten ändern kann, ist eswichtig, herauszufinden, welche Ressource ausgelastet ist und was das Problem verursacht.
Kapitel 13, Hochverfügbarkeit, erklärt, wie man Server repliziert, um Hochverfügbarkeit zu gewährleisten. Außerdem stellen wir das Clusterkonzept vor und erläutern zwei Lösungen: InnoDB Cluster und Galera/PXC Cluster.
Kapitel 14, MySQL in der Cloud, erweitert das MySQL-Universum um die Cloud. Du lernst die DBaaS-Option (Database-as-a-Service) kennen und erfährst, wie du die verwalteten Datenbankdienste der drei bekanntesten Cloud-Provider nutzen kannst: Amazon Web Services (AWS), Google Cloud Platform (GCP) und Microsoft Azure.
In Kapitel 15, Load Balancing MySQL, zeigen wir dir die am häufigsten verwendeten Werkzeuge, um Abfragen auf verschiedene MySQL-Server zu verteilen und so noch mehr Leistung aus MySQL herauszuholen.
In Kapitel 16, Verschiedene Themen, werden schließlich fortgeschrittene Analysemethoden und -werkzeuge sowie ein wenig Programmierung vorgestellt. In diesem Kapitel geht es um die MySQL-Shell, Flame-Graphen und die Analyse von Fehlern.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Code-Beispiele stehen unter https://github.com/learning-mysql-2nd/learning-mysql-2nd zum Download bereit .
Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an bookquestions@oreilly.com.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Generell gilt: Wenn ein Beispielcode mit diesem Buch angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eineGenehmigung erforderlich.
Wir freuen uns, verlangen aber in der Regel keine Namensnennung. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Learning MySQL, 2nd ed., by Vinicius M. Grippa and Sergey Kuzmichev (O'Reilly). Copyright 2021 Vinicius M. Grippa und Sergey Kuzmichev, 978-1-492-08592-8."
Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele, und alle zusätzlichen Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/learn-mysql-2e aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://youtube.com/oreillymedia
Danksagungen
Von Vinicius Grippa
Danke an die folgenden Personen, die geholfen haben, dieses Buch zu verbessern: Corbin Collins, Charly Batista, Sami Ahlroos und Brett Holleman. Ohne sie hätte dieses Buch nicht die hervorragende Qualität erreicht, die wir angestrebt haben.
Vielen Dank an die MySQL-Community (insbesondere Shlomi Noach, Giuseppe Maxia, Jeremy Cole und Brendan Gregg) und alle Blogger auf Planet MySQL, Several Nines, Percona Blog und MySQL Entomologist, die so viel Material und so viele tolle Tools beigesteuert haben.
Ich danke allen bei Percona, die mir die Möglichkeit gegeben haben, dieses Buch zu schreiben, insbesondere Bennie Grant, Carina Punzo und Marcelo Altmann, und die mir geholfen haben, beruflich und menschlich zu wachsen.
Vielen Dank an die Mitarbeiter von O'Reilly, die bei der Veröffentlichung von Büchern und der Durchführung von Konferenzen einen so erstklassigen Job machen.
Ich möchte mich bei meinen Eltern Divaldo und Regina, meiner Schwester Juliana und meiner Freundin Karin bedanken, die Geduld hatten und dieses Projekt auf vielfältige Weise unterstützt haben. Ein besonderer Dank geht an Paulo Piffer, der mir zum ersten Mal die Möglichkeit gab, mit dem zu arbeiten, was ich liebe.
Und schließlich Sergey Kuzmichev, dem Co-Autor dieses Buches. Ohne sein Fachwissen, seine Hingabe und seine harte Arbeit wäre dieses Buch nicht möglich gewesen. Ich bin dankbar, ihn als Kollegen zu haben und die Ehre zu haben, mit ihm an diesem Projekt zu arbeiten.
Von Sergey Kuzmichev
Ich möchte meiner Frau Kate dafür danken, dass sie mich bei jedem Schritt dieses schwierigen, aber lohnenden Projekts unterstützt und geholfen hat. Von der Überlegung, ob ich dieses Buch schreiben sollte, bis hin zu den vielen, manchmal schwierigen Tagen, an denen ich es schrieb, war sie immer da. Unser erstes Kind wurde geboren, während das Buch geschrieben wurde, und trotzdem fand Kate Zeit und Kraft, mich weiterhin zu motivieren und zu unterstützen.
Danke an meine Eltern, Verwandten und Freunde, die mir im Laufe der Jahre geholfen haben, als Mensch und als Experte zu wachsen. Danke, dass ihr mich bei diesem Projekt unterstützt habt.
Danke an die großartigen Mitarbeiter von Percona, die mir bei all den technischen und nicht-technischen Fragen und Problemen geholfen haben, die ich beim Schreiben dieses Buches hatte: Iwo Panowicz, Przemyslaw Malkowski, Sveta Smirnova und Marcos Albe. Danke an Stuart Bell und alle Mitarbeiter des Percona-Support-Managements für die großartige Unterstützung, die wir bei jedem Schritt erhalten haben.
Danke an alle bei O'Reilly, die uns bei der Erstellung dieser Ausgabe geholfen haben. Danke an Corbin Collins, der uns geholfen hat, die Struktur des Buches zu gestalten und uns auf unserem Weg zu halten. Danke an Rachel Head, die während des Lektorats unzählige Fehler gefunden und uns auf Probleme mit den technischen Details von MySQL aufmerksam gemacht hat. Ohne dich und alle anderen bei O'Reilly wäre dieses Buch kein Buch, sondern nur eine Sammlung von lose zusammenhängenden Wörtern.
Ein besonderer Dank geht an unsere technischen Redakteure Sami Ahlroos, Brett Holleman und Charly Batista. Sie haben maßgeblich dazu beigetragen, dass die technischen und nicht-technischen Inhalte dieses Buches von höchster Qualität sind.
Danke an alle in der MySQL-Community, die offen und hilfsbereit sind und ihr Wissen auf jede erdenkliche Weise teilen. Die Welt von MySQL ist kein ummauerter Garten, sondern offen für alle. Ich möchte Valerii Kravchuk, Mark Callaghan, Dimitri Kravchuk und Jeremy Cole erwähnen, die mir in ihren Blogs geholfen haben, die Interna von MySQL besser zu verstehen.
Ich möchte den Autoren der ersten Ausgabe dieses Buches danken: Hugh E. Williams und Seyed M.M. Tahaghoghi. Dank ihrer Arbeit konnten wir dieses Projekt auf einem soliden Fundament aufbauen.
Nicht zuletzt möchte ich Vinicius Grippa dafür danken, dass er ein großartiger Koautor und Kollege war. Ohne ihn wäre dieses Buch nicht dasselbe.
Ich widme diese Ausgabe meinem Sohn Grigorii.
Get MySQL lernen, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.