Heim >Datenbank >MySQL-Tutorial >Was ist MySQL?
MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem (RDBMS), das die am häufigsten verwendete Datenbankverwaltungssprache – Structured Query Language (SQL) für die Datenbankverwaltung verwendet.
MySQL ist Open Source, sodass jeder es herunterladen und gemäß den persönlichen Bedürfnissen unter der General Public License ändern kann.
MySQL hat aufgrund seiner Geschwindigkeit, Zuverlässigkeit und Anpassungsfähigkeit viel Aufmerksamkeit auf sich gezogen. Die meisten Menschen sind sich einig, dass MySQL die beste Wahl für die Verwaltung von Inhalten ohne Transaktionsverarbeitung ist.
Empfohlene Tutorials: MySQL-Einführungsvideo-Tutorial
Einführung in MySQL
MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem (RDBMS). Das MySQL-Datenbanksystem verwendet die am häufigsten verwendete Datenbankverwaltungssprache – Structured Query Language (SQL) für die Datenbankverwaltung.
Da MySQL Open Source ist, kann jeder es unter der General Public License herunterladen und entsprechend seinen persönlichen Bedürfnissen ändern. MySQL hat aufgrund seiner Geschwindigkeit, Zuverlässigkeit und Anpassungsfähigkeit große Aufmerksamkeit auf sich gezogen. Die meisten Menschen sind sich einig, dass MySQL die beste Wahl für die Verwaltung von Inhalten ohne Transaktionsverarbeitung ist.
Der Ursprung des Namens MySQL ist nicht ganz klar. Eine einflussreichere Aussage ist, dass grundlegenden Anleitungen und einer großen Anzahl von Bibliotheken und Tools seit mehr als 10 Jahren das Präfix „my“ vorangestellt wird und die Tochter von Monty Widenius, einem der Gründer von MySQL AB, sowieso auch My heißt . Welcher dieser beiden den Namen MySQL gab, ist bis heute ein Rätsel, auch für Entwickler.
Der Name des Delphin-Logos von MySQL lautet „sakila“ und wurde von den Gründern von MySQL AB aus einer großen Liste von Namen ausgewählt, die von Benutzern im Wettbewerb „Dolphin Naming“ vorgeschlagen wurden. Der Gewinnername stammt von Ambrose Twebaze, einem Open-Source-Softwareentwickler aus Swasiland, Afrika. Laut Ambrose stammt Sakila aus einem Swazi-Dialekt namens SiSwati und ist auch der Name einer kleinen Stadt in Arusha, Tansania, in der Nähe von Ambroses Heimatstadt Uganda.
Obwohl MySQL möglicherweise nicht sehr leistungsfähig ist, haben viele Menschen aufgrund ihrer Open Source und weiten Verbreitung von dieser Datenbank erfahren. Auch seine Geschichte ist legendär.
Datenbankoptimierung
Wählen Sie InnoDB als Speicher-Engine
Datenbank für große Produkte Für hohe Zuverlässigkeits- und Parallelitätsanforderungen ist InnoDB als Standard-MySQL-Speicher-Engine die bessere Wahl als MyISAM.
Optimieren Sie die Datenbankstruktur
Organisieren Sie das Schema, die Tabellen und Felder der Datenbank, um den E/A-Overhead zu reduzieren, verwandte Elemente zusammen zu speichern und im Voraus zu planen Zugriff jederzeit möglich Auch bei steigender Datenmenge kann die Performance auf einem hohen Niveau gehalten werden.
Die Datentabelle sollte so gestaltet sein, dass sie möglichst wenig Platz einnimmt, und der Primärschlüssel der Tabelle sollte so kurz wie möglich sein. ·Bei InnoDB-Tabellen ist die Spalte, in der sich der Primärschlüssel befindet, in jedem Sekundärindexeintrag replizierbar. Wenn also viele Sekundärindizes vorhanden sind, kann ein kurzer Primärschlüssel viel Platz sparen.
Erstellen Sie nur die Indizes, die Sie zur Verbesserung der Abfrageleistung benötigen. Indizes erleichtern das Abrufen, verlängern jedoch die Ausführungszeit von Einfüge- und Aktualisierungsvorgängen.
ChangeBuffering-Funktion von InnoDB
InnoDB bietet eine Changebuffering-Konfiguration, um die für die Verwaltung von Hilfsindizes erforderliche Festplatten-E/A zu reduzieren. Bei großen Datenbanken kann es zu einer großen Anzahl von Tabellenoperationen und umfangreichen E/A-Vorgängen kommen, um Sekundärindizes auf dem neuesten Stand zu halten. Wenn sich die relevante Seite nicht im Pufferpool befindet, speichert der Changebuffer von InnoDB die Änderungen am sekundären Indexeintrag zwischen und vermeidet so zeitraubende E/A-Vorgänge, die dadurch entstehen, dass die Seite nicht sofort von der Festplatte gelesen werden kann. Wenn Seiten in den Pufferpool geladen werden, werden gepufferte Änderungen zusammengeführt und aktualisierte Seiten werden später auf die Festplatte geschrieben. Dies verbessert die Leistung und ist für MySQL 5.5 und höher verfügbar.
InnoDB-Seitenkomprimierung
InnoDB unterstützt die Komprimierung von Tabellen auf Seitenebene. Wenn eine Datenseite geschrieben wird, wird ein bestimmter Komprimierungsalgorithmus verwendet, um sie zu komprimieren. Die komprimierten Daten werden auf die Festplatte geschrieben, wobei der Lochmechanismus leere Blöcke am Ende der Seite freigibt. Schlägt die Komprimierung fehl, werden die Daten unverändert geschrieben. Tabellen und Indizes werden komprimiert, da Indizes normalerweise einen großen Teil der gesamten Datenbankgröße ausmachen. Durch die Komprimierung kann erheblich Speicher, E/A oder Verarbeitungszeit eingespart werden, wodurch der Zweck einer Verbesserung der Leistung und Skalierbarkeit erreicht wird. Außerdem wird dadurch die zwischen Speicher und Festplatte übertragene Datenmenge reduziert. MySQL5.1 und spätere Versionen unterstützen diese Funktion.
Beachten Sie, dass die Seitenkomprimierung keine Tabellen in gemeinsam genutzten Tabellenbereichen unterstützt. Zu den gemeinsam genutzten Tabellenbereichen gehören Systemtabellenbereiche, temporäre Tabellenbereiche und reguläre Tabellenbereiche.
Massendatenimport verwenden
Die Verwendung sortierter Datenquellen auf Primärschlüsseln zum Importieren von Batch-Daten kann den Dateneinfügungsprozess beschleunigen. Andernfalls müssen möglicherweise Zeilen zwischen anderen Zeilen eingefügt werden, um die Reihenfolge beizubehalten, was zu hohen Festplatten-E/A-Vorgängen führen, die Leistung beeinträchtigen und die Seitenaufteilung erhöhen kann. Es ist auch von Vorteil, den Autocommit-Modus zu deaktivieren, da dadurch für jede Einfügung ein Log-Flush auf die Festplatte durchgeführt wird. Auch die vorübergehende Verschiebung der Prüfungen eindeutiger Schlüssel und Fremdschlüssel während Masseneinfügungen kann die Festplatten-E/A erheblich reduzieren. Für neu erstellte Tabellen besteht die beste Vorgehensweise darin, nach dem Massenimport Fremdschlüssel-/Eindeutige-Schlüssel-Einschränkungen zu erstellen.
Sobald Ihre Daten eine stabile Größe erreichen oder eine wachsende Tabelle Dutzende oder Hunderte Megabyte hinzufügt, sollten Sie die Verwendung der OPTIMIZETABLE-Anweisung in Betracht ziehen, um die Tabelle neu zu organisieren und verschwendeten Speicherplatz zu komprimieren. Ein vollständiger Tabellenscan der neu organisierten Tabelle erfordert weniger E/A.
InnoDB-Festplatten-E/A optimieren
Durch Erhöhen der Größe des InnoDB-Pufferpools können Abfragen über den Pufferpool statt über Festplatten-E/A aufgerufen werden. Passen Sie den Pufferlöschindikator an, um das optimale Niveau zu erreichen, indem Sie die Systemvariable innodb_flush_method anpassen.
MySQL-Speicherzuweisung
Bevor Sie ausreichend Speicher für MySQL zuweisen, berücksichtigen Sie bitte die Speicheranforderungen für MySQL in verschiedenen Bereichen. Zu berücksichtigende Schlüsselbereiche sind: Gleichzeitige Verbindungen – Bei einer großen Anzahl gleichzeitiger Verbindungen erfordern Sortierungen und temporäre Tabellen viel Speicher. Zum Zeitpunkt des Verfassens dieses Artikels reichen 16 GB bis 32 GB RAM für eine Datenbank aus, die mehr als 3000 gleichzeitige Verbindungen verarbeiten kann.
Speicherfragmentierung kann etwa 10 % oder mehr des Speichers verbrauchen. Caches und Puffer wie innodb_buffer_pool_size, key_buffer_size, query_cache_size usw. verbrauchen etwa 80 % des zugewiesenen Speichers.
Tägliche Wartung
Überprüfen Sie regelmäßig langsame Abfrageprotokolle und optimieren Sie den Abfragemechanismus, um den Cache effektiv zu nutzen und den Festplatten-I/O zu reduzieren. Optimieren Sie sie, um die Mindestanzahl an Zeilen zu scannen, anstatt einen vollständigen Tabellenscan durchzuführen.
Zu den weiteren Protokollen, die DBAs dabei helfen können, die Leistung zu überprüfen und zu analysieren, gehören: Fehlerprotokolle, allgemeine Abfrageprotokolle, Binärprotokolle und DDL-Protokolle (Metadatenprotokolle).
Leeren Sie regelmäßig Caches und Puffer, um die Fragmentierung zu reduzieren. Verwenden Sie die OPTIMIZETABLE-Anweisung, um die Tabelle neu zu organisieren und potenziell verschwendeten Speicherplatz zu komprimieren. [1]
Das obige ist der detaillierte Inhalt vonWas ist MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!