Heim  >  Artikel  >  Datenbank  >  Einführung in die MySQL Advanced Knowledge-Architektur

Einführung in die MySQL Advanced Knowledge-Architektur

coldplay.xixi
coldplay.xixinach vorne
2021-01-04 09:26:402397Durchsuche

MySQL-Video-Tutorial In der Spalte „MySQL-Video-Tutorial“ wird die Struktur von MySQL für Fortgeschrittene vorgestellt

Übersicht

Einführung in die MySQL Advanced Knowledge-Architektur 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, Sie müssen also nicht extra bezahlen.

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.

  • Erweitertes MySQL erfordert Wissen

  • MySQL-Kernel

    SQL-Optimierung Belagerungslöwe
  • MySQL-Serveroptimierung

    Verschiedene Parameterkonstanteneinstellungen
  • Abfrageanweisungsoptimierung

    Master-Slave-Replikation
Software- und Hardware-Upgrade
Katastrophe Wiederherstellung und Sicherung
  • SQL-Programmierung
  • Eine vollständige MySQL-Optimierung erfordert eine fundierte Grundlage. Große Unternehmen verfügen sogar über dedizierte DBAs, um die oben genannten Dinge zu schreiben
  • 2. Installation der MySQL-Linux-Version
  • Dies ist die erste Installation ist MySQL 5.5, die Installationsumgebung ist CentOS 6.5 /MySQL-server-5.5.16-1.rhel4.i386.rpm
  • http://downloads.skysql.com/archives/mysql-5.5/MySQL-client-5.5.16-1.rhel4.i386.rpm
  • http://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

Löschbefehl: rpm -e --nodeps Vollständiger Name des RPM-Pakets

  • Installieren Sie den MySQL-Server (
  • Achten Sie auf die Tipps
  • )Einführung in die MySQL Advanced Knowledge-ArchitekturEinführung in die MySQL Advanced Knowledge-Architektur
    • Passwortabfrage festlegen
    • MySQL-Client installieren
    • MySQL-Benutzer und MySQL-Gruppe anzeigen, die während der MySQL-Installation erstellt wurden
    • # cat /etc/passwd
  • # cat /etc/group<li><ul> <li><code>rpm -qa|grep -i mysql
  • 删除命令:  rpm -e --nodeps RPM包全名
  • 安装mysql服务端(注意提示)

    Einführung in die MySQL Advanced Knowledge-ArchitekturEinführung in die MySQL Advanced Knowledge-Architektur

    • 设置密码提示

  • 安装mysql客户端
  • 查看MySQL安装时创建的mysql用户和mysql组
    • # cat /etc/passwd | grep mysql
    • # cat /etc/group | grep mysql
  • mysql服务的启+停
    • 查看MySQL启停状态:  # ps -ef | grep mysql
    • 启停操作:
      • # /etc/init.d/mysql start
      • # /etc/init.d/mysql stop
      • 或者
      • #service mysql start
      • #service mysql stop
    • 设置MySQL 自启服务
      • #chkconfig mysql on   设置自动启动
      • # chkconfig --list | grep mysql   检查是否设置了自动启动
    • 修改配置文件位置
      • 拷贝当前5.5版本cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
      • 5.6版本  cp /usr/share/mysql/my-default.cnf /etc/my.cnf
    • 修改字符集和数据存储路径
      • 查看字符集
        • show variables like 'character%';
        • show variables like '%char%';MySQL-Dienst starten und stoppen
        • MySQL-Start- und Stoppstatus anzeigen: # ps -ef


          Vorgänge starten und stoppen:

          # /etc /init.d/mysql startEinführung in die MySQL Advanced Knowledge-Architektur
          # /etc/init.d/mysql stop

        • oder
      • #service mysql start
    • #service mysql stop
  • MySQL selbststartenden Dienst einrichtenEinführung in die MySQL Advanced Knowledge-Architektur

    #chkconfig mysql on Automatischen Start einrichten
    • # chkconfig --list grep mysql | Überprüfen Sie, ob der automatische Start eingestellt ist. Starten Sie

      🎜🎜Ändern Sie den Speicherort der Konfigurationsdatei🎜🎜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🎜🎜🎜🎜Zeichensatz und Datenspeicherpfad ändern🎜 🎜Zeichensatz anzeigen🎜🎜Variablen wie „Zeichen%“ anzeigen 🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 Zeichensatz 🎜
      • Standardmäßig verwenden sowohl der Client als auch der Server latin1, sodass der Code verstümmelt wird.
      • Ändern Sie den Zeichensatz und ändern Sie die zuvor kopierte Konfigurationsdatei. (Detaillierter Folgecode)
      • MySQL-Installationsort
        • Sehen Sie sich das Installationsverzeichnis unter Linux an ps -ef|grep mysql
        • /var/lib/mysql /
      • Speicherpfad für MySQL-Datenbankdateien
    • /var/lib/mysql/atguigu.cloud.pid
    /usr/share/mysqlKonfigurationsdateiverzeichnismysql.server-Befehls- und Konfigurationsdatei /usr/binZugehöriges Befehlsverzeichnismysqladmin mysqldump und andere Befehle/etc/init.d/mysqlStarten und stoppen Sie verwandte Skripte

    Einführung in die MySQL Advanced Knowledge-Architektur...

    Das Fehlerprotokoll log-error
    ist standardmäßig deaktiviert und zeichnet schwerwiegende Warn- und Fehlerinformationen, detaillierte Informationen zu jedem Start und Herunterfahren usw. auf.
      • Abfrageprotokollprotokoll
      • ist standardmäßig deaktiviert und zeichnet Abfrage-SQL-Anweisungen auf. Wenn es aktiviert ist, verringert es die Gesamtleistung von MySQL, da das Aufzeichnen von Protokollen auch Systemressourcen verbraucht


      • Datendateien
    • zwei Systeme

    WindowsEinführung in die MySQL Advanced Knowledge-Architektur

    D: Es gibt viele Bibliotheken, aus denen Sie im Datenverzeichnis von devSoftMySQLServer5.5 auswählen können
      • Linux:
      Standardpfad #cd /var/lib/mysql/
    • Sehen Sie sich alle Bibliotheken im aktuellen System an. * Tabellendaten speichern . Einführung in die logische Architektur von MySQL
        Gesamtüberblick
      Im Vergleich zu anderen Datenbanken kann die Architektur in einer Vielzahl unterschiedlicher Szenarien angewendet werden und gut funktionieren. 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.

      Einführung in die MySQL Advanced Knowledge-Architektur

        • 1. Verbindungsschicht
          • Die oberste Schicht besteht aus einigen Clients und Verbindungsdiensten, einschließlich lokaler Sockenkommunikation und den meisten clientbasierten Kommunikation ähnlich wie TCP/IP, implementiert durch 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.
          • 2. Serviceschicht
          • #cd /var/lib/mysql/
          • 看看当前系统中的全部库后再进去 #ls -1F | grep ^d
      • frm文件: 存放表结构
      • **myd文件: ** 存放表数据
      • **myi文件: ** 存放表索引
    • 如何配置
      • Windows: my.ini文件
      • Linux:  /etc/my.cnf文件

    4、Mysql逻辑架构介绍

    总体概览
    • 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

      Einführung in die MySQL Advanced Knowledge-Architektur

    • 1、连接层
      • 最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
      • 2、服务层
        • 第二层架构主要完成大多少的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。
      • 3、引擎层
        • 存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。后面介绍MyISAM和InnoDB
      • 4、存储层
        • 数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。
    查询说明
    • 首先,mysql的查询流程大致是:
      • mysql客户端通过协议与mysql服务器建连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果,否则进行语句解析
      • 有一系列预处理,比如检查语句是否写正确了,然后是查询优化(比如是否使用索引扫描,如果是一个不可能的条件,则提前终止),生成查询计划,然后查询引擎启动,开始执行查询,从底层存储引擎调用API获取数据,最后返回给客户端。怎么存数据、怎么取数据,都与存储引擎有关。
      • 然后,mysql默认使用的BTREE索引,并且一个大方向是,无论怎么折腾sql,至少在目前来说,mysql最多只用到表中的一个索引。

    5、Mysql存储引擎

    • 查看命令
      • 查看当前的MySQL 提供什么存储引擎
        • mysql> show engines;
      • 看你的 MySQL 当前默认的存储引擎:
        • show variables like '%storage_engine%';
        • 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 die Ausführung einiger integrierter Funktionen. 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.
    • 3. Engine-Schicht

      🎜Die Speicher-Engine ist wirklich für die Speicherung und Extraktion von Daten in MySQL verantwortlich. Der Server kommuniziert 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. 🎜🎜🎜🎜🎜🎜🎜Abfragebeschreibung🎜🎜🎜Zuerst ist der MySQL-Abfrageprozess ungefähr so: 🎜🎜Der MySQL-Client stellt über das Protokoll eine Verbindung mit dem MySQL-Server her, sendet die Abfrageanweisung, überprüft zunächst den Abfragecache, und wenn es zutrifft, wird das Ergebnis direkt zurückgegeben. Andernfalls umfasst das Parsen der Anweisung 🎜🎜 eine Reihe von Vorverarbeitungen, z. B. die Prüfung, ob die Anweisung korrekt geschrieben ist, und die anschließende Abfrageoptimierung (z. B. ob das Index-Scannen verwendet werden soll, falls es sich um eine handelt). Unmöglicher Zustand, vorzeitig beenden), einen Abfrageplan generieren und dann die Engine abfragen. Starten, mit der Ausführung der Abfrage beginnen, die API von der zugrunde liegenden Speicher-Engine aufrufen, um Daten abzurufen, und diese schließlich an den Client zurückgeben. 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 höchstens einen Index in der Tabelle verwendet. 5. MySQL-Speicher-Engine Sie die aktuelle Standardspeicher-Engine von MySQL: 🎜🎜zeige Variablen wie „%storage_engine%“;🎜🎜🎜🎜🎜🎜🎜Standardspeicher-Engine🎜
    • MyISAMMyISAMInnoDB

      Einführung in die MySQL Advanced Knowledge-ArchitekturEinführung in die MySQL Advanced Knowledge-Architektur

      两种引擎对比

    • 阿里巴巴、淘宝用哪个
      • Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。
      • 该公司新建了一款存储引擎叫xtradb完全可以替代innodb und InnoDB
      • Einführung in die MySQL Advanced Knowledge-ArchitekturEinführung in die MySQL Advanced Knowledge-Architektur

        Vergleich der beiden Engines

      • Welche verwendet Alibaba oder Taobao?
      Percona ist Der MySQL-Datenbankserver wurde verbessert und seine Funktionalität und Leistung wurden im Vergleich zu MySQL erheblich verbessert. 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 eine bessere Leistung und Parallelität bietet, 🎜🎜Alibaba Die meisten MySQL-Datenbanken Verwenden Sie tatsächlich den Prototyp von Percona mit Modifikationen🎜🎜🎜🎜

    Das obige ist der detaillierte Inhalt vonEinführung in die MySQL Advanced Knowledge-Architektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:jianshu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen