search
HomeDatabaseMysql TutorialGraphic and text code introduction to the black technology of union all usage in MySQL5.7

This article will guide you through 5 minutes to understand the black technology of union all in MySQL5.7. Friends who need it can refer to it

Union all performance under MySQL5.6

Part1: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)

It can be seen that under MySQL5.6 In this version, the execution results are as shown in the figure below:

Graphic and text code introduction to the black technology of union all usage in MySQL5.7

From the execution plan, the

query results of the helei table and the query results of the t table are Merged in a temporary table, and then output to the client.

Performance of union all under MySQL5.7/MariaDB10.1

Part1: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)

It can be seen that in the MySQL5.7 version, the execution result is as shown below:


Graphic and text code introduction to the black technology of union all usage in MySQL5.7

Part2: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)

It can be seen that in MariaDB10.1, the execution result is as shown below:

Graphic and text code introduction to the black technology of union all usage in MySQL5.7

From The execution results show that no temporary table is created in either MySQL 5.7 or MariaDB 10.1. In order, the query results of the helei table are first output to the client, and then the query results of the t table are output to the client.


The optimization in this article is only for union all, and is invalid for union and the use of order by in the outermost layer. As shown in the figure below:

Graphic and text code introduction to the black technology of union all usage in MySQL5.7

——Summary——

in MySQL5.7/MariaDB10.1 , union all no longer creates temporary tables, which will reduce I/O overhead during

joint queries. This feature is not available in MySQL5.5/5.6.

The above is the detailed content of Graphic and text code introduction to the black technology of union all usage in MySQL5.7. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Detailed explanation of the installation steps of MySQL on macOS systemDetailed explanation of the installation steps of MySQL on macOS systemApr 29, 2025 pm 03:36 PM

Installing MySQL on macOS can be achieved through the following steps: 1. Install Homebrew, using the command /bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)". 2. Update Homebrew and use brewupdate. 3. Install MySQL and use brewinstallmysql. 4. Start MySQL service and use brewservicesstartmysql. After installation, you can use mysql-u

How to use conditional filtering and grouping in MySQL queryHow to use conditional filtering and grouping in MySQL queryApr 29, 2025 pm 03:33 PM

In MySQL, conditional filtering is implemented through the WHERE clause and grouping is completed through the GROUPBY clause. 1. Use the WHERE clause to filter data, such as finding employees with salary above 5,000. 2. Use the GROUPBY clause to group and aggregate data, such as counting the number of employees by department. 3. Choose the appropriate index to optimize query performance and avoid using functions or expressions as WHERE conditions. 4. Combining subqueries and EXPLAIN commands improve the efficiency of complex queries.

How to clear MySQL table data but preserve table structureHow to clear MySQL table data but preserve table structureApr 29, 2025 pm 03:30 PM

In MySQL, clearing table data but preserving table structure can be implemented through the TRUNCATETABLE and DELETE commands. 1. The TRUNCATETABLE command quickly deletes all records and resets the self-increment column. 2. The DELETE command deletes data line by line, does not reset the self-increment column, and can delete specific records in combination with the WHERE clause.

Methods to deduplicate MySQL query resultsMethods to deduplicate MySQL query resultsApr 29, 2025 pm 03:27 PM

Deduplication in MySQL mainly uses DISTINCT and GROUPBY. 1.DISTINCT is used to return unique values, such as SELECTDISTINCTname, ageFROMusers. 2. GROUPBY realizes deduplication through grouping and can perform aggregation operations, such as SELECTid, name, MAX(created_at)aslatest_dateFROMusersGROUPBYname.

How to view information about all databases in MySQLHow to view information about all databases in MySQLApr 29, 2025 pm 03:24 PM

Viewing the information of all databases in MySQL can be achieved in two ways: 1. Use the SHOWDATABASES; command to quickly list all database names. 2. Query the INFORMATION_SCHEMA.SCHEMATA table to obtain more detailed information, such as the database creation time and character set settings.

How to add and delete unique constraints to MySQL tablesHow to add and delete unique constraints to MySQL tablesApr 29, 2025 pm 03:21 PM

In MySQL, you can add and delete unique constraints through the following steps: 1. Add unique constraints when creating a table, using the CREATETABLE statement; 2. Add unique constraints on existing tables, using the ALTERTABLE and ADDCONSTRAINT statements; 3. Delete unique constraints, using the ALTERTABLE and DROPINDEX statements. Unique constraints ensure that the values ​​of a column or columns in the table are unique, prevent data duplication, and maintain data integrity.

How to copy table structure and data in MySQLHow to copy table structure and data in MySQLApr 29, 2025 pm 03:18 PM

The methods of copying table structure and data in MySQL include: 1. Use CREATETABLE...LIKE to copy the table structure; 2. Use INSERTINTO...SELECT to copy the data. Through these steps, data backup and migration can be efficiently performed in different scenarios.

How to get data randomly from MySQL tableHow to get data randomly from MySQL tableApr 29, 2025 pm 03:15 PM

Randomly fetching data from MySQL tables can be done using the RAND() function. 1. Basic usage: SELECTFROMusers ORDERBYRAND()LIMIT5; 2. Advanced usage: SELECTFROMusersWHEREid>=(SELECTFLOOR(RAND()*(SELECTMAX(id)FROMusers)))LIMIT5; Optimization strategy includes using index and pagination query.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment