MySQL-Video-Tutorial In der Spalte „MySQL-Video-Tutorial“ wird die Struktur von MySQL für Fortgeschrittene vorgestellt
Übersicht
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-KernelSQL-Optimierung Belagerungslöwe
- MySQL-ServeroptimierungVerschiedene Parameterkonstanteneinstellungen
- AbfrageanweisungsoptimierungMaster-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- )
-
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服务端(注意提示)
安装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
- 修改字符集和数据存储路径
- 查看字符集
#service mysql start
#service mysql stop
MySQL selbststartenden Dienst einrichten
#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/mysql | Konfigurationsdateiverzeichnis | mysql.server-Befehls- und Konfigurationsdatei |
/usr/bin
Zugehöriges Befehlsverzeichnis | mysqladmin mysqldump und andere Befehle |
| /etc/init.d/mysql
Starten und stoppen Sie verwandte Skripte |
|
|
...
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
Windows
D: Es gibt viele Bibliotheken, aus denen Sie im Datenverzeichnis von devSoftMySQLServer5.5 auswählen können
-
Standardpfad
#cd /var/lib/mysql/
- Sehen Sie sich alle Bibliotheken im aktuellen System an. * Tabellendaten speichern . Einführung in die logische Architektur von MySQLIm 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.
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有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。
-
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 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🎜
-
MyISAM
MyISAM
和InnoDB
两种引擎对比
- 阿里巴巴、淘宝用哪个
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!