MySQL performance tuning partition table (summary sharing)
This article brings you relevant knowledge about mysql, which mainly introduces related issues about performance tuning, mainly introduces the relevant content of partition tables. For users, partitioning The table is an independent logical table, but the bottom layer is composed of multiple physical sub-tables. Let's take a look at it together. I hope it will be helpful to everyone.
Recommended learning: mysql video tutorial
For users, the partition table is an independent logical table, but the bottom layer is Composed of multiple physical sub-tables. The partition table is a black box that completely encapsulates the underlying implementation and is transparent to the user. Multiple table files named using # to separate them can be seen from the file system.
Mysql uses the partition by clause to define the data stored in each partition when creating a table. When executing a query, the optimizer will filter those partitions that do not have the data we need based on the partition definition, so that the query does not need to scan all partitions.
The main purpose of partitioning is to divide the data into different tables, so that related data can be stored together.
Next, I will talk about the partition table from the following six aspects, namely the application scenarios of the partition table, the limitations of the partition table, the principle of the partition table, the types of the partition table, how to use the partition table, and how to use the partition table. Things to pay attention to when making a table.
1. Application scenarios of partition tables
1. The table is so large that it cannot all be placed in the memory, or there is only hot data in the last part of the table, and the rest is historical data .
2. Partitioned table data is easier to maintain
(1) To delete a large amount of data in batches, you can use the method of clearing the entire partition
(2) Optimize an independent partition , check, repair and other operations
3. The data of the partition table can be distributed on different physical devices, thereby efficiently utilizing multiple hardware devices
4. The partition table can be used to avoid certain Some special bottlenecks
(1) Mutually exclusive access of a single index of innodb
(2) Inode lock competition of ext3 file system
5. Can be backed up and restored independently Partition
2. Limitations of partition table
1. A table can only have a maximum of 1024 partitions. In version 5.7, it can support 8196 partitions
2. In the early MySQL, the partition expression must be an integer or an expression that returns an integer. In MySQL 5.5, columns can be used directly for partitioning in some scenarios.
3. If there are primary key or unique index columns in the partition field, then all primary key columns and unique index columns must be included.
4. Partitioned tables cannot use foreign key constraints
3. Principle of partitioned tables
Partitioned tables are implemented by multiple related underlying tables. This underlying table is also identified by a handle object, and we can directly access each partition. The storage engine manages each underlying table of the partition in the same way as it manages an ordinary table (all underlying tables must use the same storage engine). The index knowledge of the partition table adds an identical index to each underlying table. From the perspective of the storage engine, the underlying table is no different from an ordinary table, and the storage engine does not need to know whether it is an ordinary table or part of a partitioned table. The operation of the partition table is carried out according to the following operation logic:
1. Select query
When querying a partition table, the partition layer first opens and locks all For the underlying table, the optimizer first determines whether some partitions can be filtered, and then calls the corresponding storage engine interface to access the data of each partition
2. Insert operation
When writing When a record is entered, the partition layer first opens and locks all underlying tables, then determines which partition accepts the record, and then writes the record to the corresponding underlying table.
3. Delete operation
When deleting a record, the partition layer first opens and locks all underlying tables, then determines the partition corresponding to the data, and finally performs the corresponding Delete the underlying table.
4. Update operation
When updating a record, the partition layer first opens and locks all underlying tables, and mysql first determines which partition the record needs to be updated. , then take out the data and update it, then determine which partition the updated data should be in, and finally write to the underlying table and delete the underlying table where the source data is located.
Some operations support filtering. For example, when deleting a record, MySQL needs to find the record first. If the where condition happens to match the partition expression, all partitions that do not contain this record can be All are filtered out, which is also effective for update. If it is an insert operation, it will only hit one partition, and other partitions will be filtered out. MySQL first determines which partition this record belongs to, and then writes the record to the corresponding partition table without operating on any other partitions.
Although each operation will "first open and lock all underlying tables", this does not mean that the partition table locks the entire table during processing. If the storage engine can implement row-level locks by itself, such as innodb , the corresponding table lock will be released at the partition level.
Recommended learning: mysql video tutorial
The above is the detailed content of MySQL performance tuning partition table (summary sharing). 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











The main role of MySQL in web applications is to store and manage data. 1.MySQL efficiently processes user information, product catalogs, transaction records and other data. 2. Through SQL query, developers can extract information from the database to generate dynamic content. 3.MySQL works based on the client-server model to ensure acceptable query speed.

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

MySQL and phpMyAdmin are powerful database management tools. 1) MySQL is used to create databases and tables, and to execute DML and SQL queries. 2) phpMyAdmin provides an intuitive interface for database management, table structure management, data operations and user permission management.

I encountered a tricky problem when developing a small application: the need to quickly integrate a lightweight database operation library. After trying multiple libraries, I found that they either have too much functionality or are not very compatible. Eventually, I found minii/db, a simplified version based on Yii2 that solved my problem perfectly.

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

The basic operations of MySQL include creating databases, tables, and using SQL to perform CRUD operations on data. 1. Create a database: CREATEDATABASEmy_first_db; 2. Create a table: CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY, titleVARCHAR(100)NOTNULL, authorVARCHAR(100)NOTNULL, published_yearINT); 3. Insert data: INSERTINTObooks(title, author, published_year)VA

When developing an e-commerce website using Thelia, I encountered a tricky problem: MySQL mode is not set properly, causing some features to not function properly. After some exploration, I found a module called TheliaMySQLModesChecker, which is able to automatically fix the MySQL pattern required by Thelia, completely solving my troubles.
