Heim > Datenbank > MySQL-Tutorial > Hauptteil

Grafik- und Textcode-Einführung in die Black-Technologie der Union-All-Nutzung in MySQL5.7

黄舟
Freigeben: 2017-04-15 09:31:46
Original
1618 Leute haben es durchsucht

Dieser Artikel führt Sie 5 Minuten lang durch die Black-Technologie von Union all in MySQL5.7. Freunde in Not können sich auf

Leistung der Union alle unter MySQL5.6

Teil1:MySQL5.6.25


[root@HE1 ~]# MySQL -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.25-log MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select version();
+------------+
| version() |
+------------+
| 5.6.25-log |
+------------+
1 row in set (0.26 sec)
  
mysql> explain (select id from helei order by id) union all (select id from t where id=0 order by id);
+----+--------------+------------+-------+---------------+--------+---------+------+------+-----------------+
| id | select_type | table   | type | possible_keys | key  | key_len | ref | rows | Extra      |
+----+--------------+------------+-------+---------------+--------+---------+------+------+-----------------+
| 1 | PRIMARY   | helei   | index | NULL     | idx_c1 | 4    | NULL | 5219 | Using index   |
| 2 | UNION    | t     | ALL  | NULL     | NULL  | NULL  | NULL |  1 | Using where   |
| NULL | UNION RESULT | <union1,2> | ALL  | NULL     | NULL  | NULL  | NULL | NULL | Using temporary |
+----+--------------+------------+-------+---------------+--------+---------+------+------+-----------------+
3 rows in set (0.00 sec)
Nach dem Login kopieren
Das kann sein gesehen, dass in MySQL5 In der .6-Version ist das Ausführungsergebnis wie in der folgenden Abbildung dargestellt:

Grafik- und Textcode-Einführung in die Black-Technologie der Union-All-Nutzung in MySQL5.7

Aus dem Ausführungsplan ergibt sich die

Abfrage Die Abfrageergebnisse der Helei-Tabelle und der T-Tabelle werden in einer temporären Tabelle zusammengeführt und dann an den Client ausgegeben.

Leistung der Union alle unter MySQL5.7/MariaDB10.1

Teil1:MySQL5.7.15



[root@HE1 ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.15-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.
mysql> select version();
+------------+
| version() |
+------------+
| 5.7.15-log |
+------------+
1 row in set (0.00 sec)、
mysql> explain (select id from helei order by id) union all (select id from t where id=0 order by id);
+----+-------------+-------+------------+-------+---------------+--------+---------+------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref | rows | filtered | Extra    |
+----+-------------+-------+------------+-------+---------------+--------+---------+------+------+----------+-------------+
| 1 | PRIMARY   | helei | NULL    | index | NULL     | idx_c1 | 4    | NULL | 5212 |  100.00 | Using index |
| 2 | UNION    | t   | NULL    | ALL  | NULL     | NULL  | NULL  | NULL |  1 |  100.00 | Using where |
+----+-------------+-------+------------+-------+---------------+--------+---------+------+------+----------+-------------+
2 rows in set, 1 warning (0.00 sec)
Nach dem Login kopieren
Es ist ersichtlich, dass in der MySQL5.7-Version das Ausführungsergebnis wie folgt aussieht:


Grafik- und Textcode-Einführung in die Black-Technologie der Union-All-Nutzung in MySQL5.7

Teil2:MariaDB10.1.16


[root@HE3 ~]# /usr/local/mariadb/bin/mysql -uroot -S /tmp/mariadb.sock 
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 10.1.16-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.
MariaDB [(none)]>
MariaDB [helei]> explain (select id from helei order by id) union all (select id from t where id=0 order by id);
+------+-------------+-------+-------+---------------+--------+---------+------+------+-------------+
| id  | select_type | table | type | possible_keys | key  | key_len | ref | rows | Extra    |
+------+-------------+-------+-------+---------------+--------+---------+------+------+-------------+
|  1 | PRIMARY   | helei | index | NULL     | idx_c1 | 4    | NULL | 5198 | Using index |
|  2 | UNION    | t   | ALL  | NULL     | NULL  | NULL  | NULL |  1 | Using where |
+------+-------------+-------+-------+---------------+--------+---------+------+------+-------------+
2 rows in set (0.00 sec)
Nach dem Login kopieren
Es ist ersichtlich, dass in MariaDB10.1 das Ausführungsergebnis wie folgt aussieht:

Grafik- und Textcode-Einführung in die Black-Technologie der Union-All-Nutzung in MySQL5.7

Den Ausführungsergebnissen nach zu urteilen, wird weder in MySQL5.7 noch in MariaDB10.1 eine temporäre Tabelle erstellt. In der Reihenfolge werden zuerst die Abfrageergebnisse der Helei-Tabelle und dann die Abfrageergebnisse von ausgegeben Die t-Tabelle wird an den Client ausgegeben.


Die Optimierung in diesem Artikel gilt nur für Union All und ist für Union und die Verwendung von order by in der äußersten Ebene ungültig. Wie in der Abbildung unten gezeigt:

Grafik- und Textcode-Einführung in die Black-Technologie der Union-All-Nutzung in MySQL5.7

– Zusammenfassung –

in MySQL5.7/MariaDB10.1, Union all erstellt keine temporären Tabellen mehr, was den E/A-Overhead bei

gemeinsamen Abfragen reduziert. Diese Funktion ist in MySQL5.5/5.6 nicht verfügbar.

Das obige ist der detaillierte Inhalt vonGrafik- und Textcode-Einführung in die Black-Technologie der Union-All-Nutzung in MySQL5.7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!