What are the benefits of mysql union index? The meaning of joint index
mysql What is the meaning of creating a ‘joint index’ in
Question?
What is the need to create a ‘joint index’? What are the most practical benefits? If it is to query the data faster, wouldn’t it be OK to have a single-column index? Why does ‘joint index’ exist?
Simply speaking, there are two main reasons:
"One is worth three." If you build a composite index of (a, b, c), it is actually equivalent to building three indexes (a), (a, b), (a, b, c), because each additional index will increase write operations. overhead and disk space overhead. For tables with a large amount of data, this is a lot of overhead!
Covering index. The same has a compound index (a, b, c), if there is the following sql: select a, b, c from table where a=1 and b = 1. Then MySQL can obtain data directly by traversing the index without returning the table, which reduces a lot of random IO operations. Reducing IO operations, especially random IO, is actually the main optimization strategy of DBA. Therefore, in real practical applications, covering indexes are one of the main optimization methods to improve performance
The more index columns there are, the less data will be filtered out through the index. A table with 10 million pieces of data has the following sql: select from table where a = 1 and b =2 and c = 3. Assume that each condition can filter out 10% of the data. If there is only a single value index, then Through this index, 1000W10%=100w pieces of data can be filtered out, and then the table can be returned to find the data that matches b=2 and c=3 from the 100w pieces of data, and then sorted and paginated ; If it is a compound index, filter out 1000w 10% 10% *10%=1w through the index, and then sort and paginate. You will know which one is more efficient at a glance
The following table has three key a, b, c
create table test( a int, b int, c int, );
If we
need to perform a lot of things similar to select * from test where a=10 , b>50, c>20
This type of combination query Then, we may need to create a joint index containing [a, b, c], and a separate [a][ b] The index on [c] is not sufficient. (You can think of an index as a sorted list). Creating an index of (a, b, c) is equivalent to sorting by a, b, c (the sorting rules are
if(X.a>Y.a) return '>'; else if(X.a<Y.a) return '<'; else if(X.b>Y.b) return '>'; else if (X.b<Y.b) return '<'; else if (X.c>Y.c) return '>' else if (X.c<Y.c) return '<' esle return '==' )
and Sorting by a and b respectively is different.
The order of a b c is also important, sometimes it can be a c b, or b c a, etc.
If you create (a, b. ,c) The query efficiency of the joint index is as follows:
优: select * from test where a=10 and b>50 差: select * from test where a>50 优: select * from test order by a 差: select * from test order by b 差: select * from test order by c 优: select * from test where a=10 order by a 优: select * from test where a=10 order by b 差: select * from test where a=10 order by c 优: select * from test where a>10 order by a 差: select * from test where a>10 order by b 差: select * from test where a>10 order by c 优: select * from test where a=10 and b=10 order by a 优: select * from test where a=10 and b=10 order by b 优: select * from test where a=10 and b=10 order by c 优: select * from test where a=10 and b=10 order by a 优: select * from test where a=10 and b>10 order by b 差: select * from test where a=10 and b>10 order by c
The following is represented by a diagram
Three Notes
In mysql, if the column is of varchar type, please do not use int type to access it
As follows
The product_id in the zz_deals table is of varchar type
mysql> explain select * from zz_deals where qq_shop_id = 64230 and product_id = '38605906667' ;+----+-------------+-------------+------+------------------------------+------------------------------+---------+-------------+------+-------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------------+------+------------------------------+------------------------------+---------+-------------+------+-------------+| 1 | SIMPLE | zz_deals | ref | by_product_id_and_qq_shop_id | by_product_id_and_qq_shop_id | 156 | const,const | 1 | Using where |+----+-------------+-------------+------+------------------------------+------------------------------+---------+-------------+------+-------------+1 row in set (0.00 sec) mysql> explain select * from zz_deals where qq_shop_id = 64230 and product_id = 38605906667 ;+----+-------------+-------------+------+------------------------------+------+---------+------+------+-------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------------+------+------------------------------+------+---------+------+------+-------------+| 1 | SIMPLE | zz_deals | ALL | by_product_id_and_qq_shop_id | NULL | NULL | NULL | 17 | Using where |+----+-------------+-------------+------+------------------------------+------+---------+------+------+-------------+1 row in set (0.00 sec)
Promotion
After two and a half months of preparation, three major revisions, and seventeen minor revisions, le1024 is finally ready to meet you.
#le1024 recommends 1 to 3 paragraphs every day, which are interesting, loving, and fun. Videos with stories.
## Add a little happiness to your work, study, and life.[Related recommendations]
1.
Free mysql online video tutorialMySQL latest manual tutorialThose things about database designThe above is the detailed content of What are the benefits of mysql union index? The meaning of joint index. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

You can open phpMyAdmin through the following steps: 1. Log in to the website control panel; 2. Find and click the phpMyAdmin icon; 3. Enter MySQL credentials; 4. Click "Login".

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

Redis uses a single threaded architecture to provide high performance, simplicity, and consistency. It utilizes I/O multiplexing, event loops, non-blocking I/O, and shared memory to improve concurrency, but with limitations of concurrency limitations, single point of failure, and unsuitable for write-intensive workloads.

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

MySQL and SQL are essential skills for developers. 1.MySQL is an open source relational database management system, and SQL is the standard language used to manage and operate databases. 2.MySQL supports multiple storage engines through efficient data storage and retrieval functions, and SQL completes complex data operations through simple statements. 3. Examples of usage include basic queries and advanced queries, such as filtering and sorting by condition. 4. Common errors include syntax errors and performance issues, which can be optimized by checking SQL statements and using EXPLAIN commands. 5. Performance optimization techniques include using indexes, avoiding full table scanning, optimizing JOIN operations and improving code readability.

Effective monitoring of Redis databases is critical to maintaining optimal performance, identifying potential bottlenecks, and ensuring overall system reliability. Redis Exporter Service is a powerful utility designed to monitor Redis databases using Prometheus. This tutorial will guide you through the complete setup and configuration of Redis Exporter Service, ensuring you seamlessly build monitoring solutions. By studying this tutorial, you will achieve fully operational monitoring settings
