Heim  >  Artikel  >  Datenbank  >  Eine Einführung in die Datenbankarchitektur

Eine Einführung in die Datenbankarchitektur

零下一度
零下一度Original
2017-05-05 16:32:161540Durchsuche

1. Einführung in MySQL

Überblick
  • MySQL ist ein relationales Datenbankverwaltungssystem, das von der schwedischen Firma MySQL AB entwickelt wurde und derzeit zu Oracle gehört.

  • MySQL ist ein relationales Datenbankverwaltungssystem, das Daten in verschiedenen Tabellen speichert, anstatt alle Daten in einem großen Lager abzulegen, was die Geschwindigkeit erhöht und die Flexibilität verbessert.

  • Mysql ist Open Source, sodass Sie nicht extra bezahlen müssen.

  • Mysql unterstützt große Datenbanken. Kann große Datenbanken mit mehreren zehn Millionen Datensätzen verarbeiten.

  • MySQL verwendet die Standardform der SQL-Datensprache.

  • Mysql kann auf mehreren Systemen verwendet werden und unterstützt mehrere Sprachen. Zu diesen Programmiersprachen gehören C, C++, Python, Java, Perl, PHP, Eiffel, Ruby und Tcl usw.

  • Mysql bietet gute Unterstützung für PHP, die derzeit beliebteste Webentwicklungssprache.

  • MySQL unterstützt große Datenbanken und Data Warehouses mit 50 Millionen Datensätzen. Die 32-Bit-Systemtabellendatei kann maximal 4 GB unterstützen, und das 64-Bit-System unterstützt eine maximale Tabellendatei von 8 TB.

  • MySQL kann angepasst werden und übernimmt das GPL-Protokoll. Sie können den Quellcode ändern, um Ihr eigenes MySQL-System zu entwickeln.

Fortgeschrittenes MySQL erfordert Wissen
  • MySQL-Kernel

  • SQL-Optimierung Belagerungslöwe

  • MySQL-Serveroptimierung

  • Verschiedene Parameterkonstanteneinstellungen

  • Abfrageanweisungsoptimierung

  • Master-Slave-Replikation

  • Software- und Hardware-Upgrade

  • Disaster-Recovery-Backup

  • SQL-Programmierung

  • Eine vollständige MySQL-Optimierung erfordert eine fundierte Grundlage. Große Unternehmen verfügen sogar über dedizierte Datenbankadministratoren, die das oben Gesagte schreiben

2. Installation der MySQL-Linux-Version

  • Dieses Mal wird MySQL 5.5 installiert und die Installationsumgebung ist CentOS 6.5

  • Versions-Download-Adresse offizielle Website-Downloadadresse

    • DownloadMySQL-Client und MySQL-Server

    • downloads.skysql.com/archives/mysql-5.5/MySQL-server-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql- 5.5/MySQL-client-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql-5.5/MySQL-devel-5.5.16-1 .rhel4.i386.rpm

  • Überprüfen Sie, ob MySQL auf dem aktuellen System installiert ist

    • Abfragebefehl: rpm -qa|grep -i mysql

    • Befehl löschen: rpm -e --nodeps RPM包全名

  • MySQL-Server installieren (Tipps beachten)

    • Eine Einführung in die Datenbankarchitektur

      Passwortabfrage festlegen

  • MySQL-Client installieren

  • Sehen Sie sich den MySQL-Benutzer und die MySQL-Gruppe an, die während der MySQL-Installation erstellt wurden

    • # cat /etc/passwd | grep mysql

    • # cat /etc/group | grep mysql

  • MySQL-Dienst starten + stoppen

    • Zeichensatz anzeigen

    • Ändern Sie den Zeichensatz und ändern Sie die zuvor kopierte Konfigurationsdatei. (Detaillierter Folgecode)

    • MySQL-Installationsort

    • show variables like 'character%';

    • show variables like '%char%';

    • Eine Einführung in die Datenbankarchitektur

      Zeichensatz

    • Die Standardeinstellung ist, dass sowohl der Client als auch der Server Verwenden Sie latin1 , damit der Code verstümmelt wird.

    • Installationsverzeichnis unter Linux anzeigenps -ef|grep mysql

    • Kopieren Sie die aktuelle 5.5-Version: cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

    • Version 5.6 cp /usr/share/mysql/my-default.cnf /etc/my.cnf

    • #chkconfig mysql onAutomatischen Start einstellen

    • # chkconfig --list | grep mysqlÜberprüfen Sie, ob der automatische Start eingerichtet ist

    • # /etc/init.d/mysql start

    • # /etc/init.d/mysql stop

    • Oder

    • #service mysql start

    • #service mysql stop

    • Überprüfen Sie den MySQL-Start und Stoppstatus: # ps -ef | grep mysql

    • Vorgänge starten und stoppen:

    • MySQL-Selbststartdienst einrichten

    • Speicherort der Konfigurationsdatei ändern

    • Zeichensatz und Datenspeicherpfad ändern

路径 解释 备注
/var/lib/mysql/ mysql数据库文件的存放路径 /var/lib/mysql/atguigu.cloud.pid
/usr/share/mysql 配置文件目录 mysql.server命令及配置文件
/usr/bin 相关命令目录 mysqladmin mysqldump等命令
/etc/init.d/mysql 启停相关脚本

Eine Einführung in die Datenbankarchitektur

MySQL-Installationsort

[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock

# 这一行需要设置字符集
default-character-set=utf8

# The MySQL server
[mysqld]
port = 3306

# 还有这三行
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci

socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

[mysql]
no-auto-rehash
# 还有这一行
default-character-set=utf8

3. MySQL-Konfigurationsdatei

Hauptkonfigurationsdatei
  • Binärer Log-Log-Bin

    • Master-Slave-Replikation

    • Eine Einführung in die Datenbankarchitektur


  • Fehlerprotokoll log-error

    • ist standardmäßig deaktiviert und zeichnet schwerwiegende Warnungen und Fehler auf Meldungen, Details zu jedem Start und Herunterfahren usw.

  • Abfrageprotokollprotokoll

    • Standardmäßig deaktiviert, zeichnet Abfrage-SQL-Anweisungen auf. Wenn es aktiviert ist, wird es gespeichert Reduzieren Sie die Gesamtleistung von MySQL, da das Aufzeichnen von Protokollen auch Systemressourcen

  • Datendateien

    • Windows

      verbraucht
    • Linux:

    • Sie können viele Bibliotheken im Verzeichnis D:devSoftMySQLServer5.5data auswählen

    • Standardpfad #cd /var/lib/mysql/

    • Schauen Sie sich alle Bibliotheken im aktuellen System an, bevor Sie loslegen#ls -1F | grep ^d

    • Zwei Systeme

    • frm-Datei: speichert die Tabellenstruktur

    • myd-Datei: speichert Tabellendaten

    • myi-Datei: speichert den Tabellenindex

  • So konfigurieren Sie

    • Windows : my.ini-Datei

    • Linux: /etc/my.cnf-Datei

4. Einführung in die logische Architektur von MySQL

Übersicht
  • Im Vergleich zu anderen Datenbanken ist die Architektur von MySQL in vielen verschiedenen Szenarien anwendbar und funktioniert gut. Die Plug-in-Speicher-Engine-Architektur spiegelt sich hauptsächlich in der Architektur der Speicher-Engine wider und trennt die Abfrageverarbeitung von anderen Systemaufgaben sowie der Datenspeicherung und -extraktion . Diese Architektur ermöglicht die Auswahl geeigneter Speicher-Engines basierend auf Geschäftsanforderungen und tatsächlichen Anforderungen.

    • Die Datenspeicherschicht speichert hauptsächlich Daten im Dateisystem, das auf dem Rohgerät ausgeführt wird, und schließt die Interaktion mit der Speicher-Engine ab.

    • Speicher-Engine-Schicht, die Speicher-Engine ist wirklich für die Speicherung und den Abruf von Daten in MySQL verantwortlich, und der Server kommuniziert über die API mit der Speicher-Engine. Verschiedene Speicher-Engines haben unterschiedliche Funktionen, sodass wir entsprechend unseren tatsächlichen Anforderungen auswählen können. MyISAM und InnoDB werden später eingeführt

    • Die Architektur der zweiten Schicht vervollständigt hauptsächlich die meisten Kerndienstfunktionen, wie z. B. die SQL-Schnittstelle, und vervollständigt zwischengespeicherte Abfragen, SQL-Analyse und -Optimierung sowie einige erstellte Funktionen -in-Funktionen implementieren. In dieser Schicht sind auch alle speichermotorübergreifenden Funktionen implementiert, wie z. B. Prozeduren, Funktionen usw. Auf dieser Ebene analysiert der Server die Abfrage, erstellt den entsprechenden internen Analysebaum und führt die entsprechende Optimierung durch, z. B. die Bestimmung der Reihenfolge der Abfragetabelle, ob Indizes verwendet werden sollen usw., und generiert schließlich den entsprechenden Ausführungsvorgang. Wenn es sich um eine Select-Anweisung handelt, fragt der Server auch den internen Cache ab. Wenn der Cache-Speicherplatz groß genug ist, kann er die Systemleistung in einer Umgebung, die eine große Anzahl von Lesevorgängen verarbeitet, erheblich verbessern.

    • Die oberste Schicht sind einige Client- und Verbindungsdienste, einschließlich lokaler Sock-Kommunikation und der meisten TCP/IP-ähnlichen Kommunikation basierend auf Client/Server-Tools. Es führt hauptsächlich einige Verbindungsverarbeitungs-, Autorisierungsauthentifizierungs- und zugehörige Sicherheitslösungen durch. Auf dieser Ebene wird das Konzept des Thread-Pools eingeführt, um Threads für Clients bereitzustellen, die über Authentifizierung sicher darauf zugreifen. Auf dieser Ebene können auch SSL-basierte sichere Links implementiert werden. Der Server überprüft außerdem die Betriebsberechtigungen, die er für jeden Client hat, der sicher auf ihn zugreift.

    • Eine Einführung in die Datenbankarchitektur


    • 1. Verbindungsschicht

    • 2. Serviceschicht

    • 3. Motorschicht

    • 4. Speicherschicht

Abfragebeschreibung
  • Erstens der Abfrageprozess von MySQL Grob gesagt:

    • Der MySQL-Client stellt über das Protokoll eine Verbindung mit dem MySQL-Server her, sendet die Abfrageanweisung, überprüft zunächst den Abfragecache und gibt bei einem Treffer die zurück Ergebnis direkt, andernfalls wird die Anweisung analysiert

    • Es gibt eine Reihe von Vorverarbeitungen, z. B. die Überprüfung, ob die Anweisung korrekt geschrieben ist, und dann die Abfrageoptimierung (z. B. ob der Index verwendet werden soll). Scannen (wenn es sich um eine unmögliche Bedingung handelt, vorzeitig beenden) und Abfragen generieren Planen Sie, dann startet die Abfrage-Engine, beginnt mit der Ausführung der Abfrage, ruft die API von der zugrunde liegenden Speicher-Engine auf, um die Daten abzurufen, und gibt sie schließlich an den Client zurück. Das Speichern und Abrufen von Daten hängt von der Speicher-Engine ab.

    • Dann verwendet MySQL standardmäßig den BTREE-Index, und eine allgemeine Anweisung ist, dass MySQL, egal wie man mit SQL umgeht, zumindest im Moment nur höchstens einen Index in der Tabelle verwendet.

5. MySQL-Speicher-Engine

  • Befehl anzeigen

    • show variables like '%storage_engine%';

    • mysql> show engines;

    • Sehen Sie, welche Speicher-Engines derzeit von MySQL bereitgestellt werden

    • Sehen Sie sich Ihre aktuelle MySQL-Standardspeicher-Engine an:

    • Eine Einführung in die Datenbankarchitektur

      Standardspeicher-Engine

  • MyISAM und InnoDB

    • Eine Einführung in die Datenbankarchitektur

      zwei Arten Motorvergleich

  • Welches für Alibaba oder Taobao verwenden

    • Eine Einführung in die Datenbankarchitektur


    • Percona wurde für den MySQL-Datenbankserver verbessert und weist im Vergleich zu MySQL eine deutliche Verbesserung in Funktionalität und Leistung auf. Diese Version verbessert die Leistung von InnoDB unter Hochlastbedingungen, stellt Datenbankadministratoren einige sehr nützliche Leistungsdiagnosetools zur Verfügung und verfügt über mehr Parameter und Befehle zur Steuerung des Serververhaltens.

    • Das Unternehmen hat eine neue Speicher-Engine namens xtradb entwickelt, die innodb vollständig ersetzen kann und die Leistung und Parallelität verbessert ,

    • Die meisten MySQL-Datenbanken von Alibaba verwenden tatsächlich den zu modifizierenden Prototyp von Percona.

    [Verwandte Empfehlungen]

    1. Kostenloses MySQL-Online-Video-Tutorial

    2

    3.

    Boolean Education Yan Shiba MySQL-Einführungsvideo-Tutorial

Das obige ist der detaillierte Inhalt vonEine Einführung in die Datenbankarchitektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn