Summary of MySQL partitioning_MySQL
Foreword
Partitioning refers to decomposing a large table into multiple smaller parts according to certain rules. The rules here are generally to use partitioning rules to split the table horizontally; the logic has not changed but in fact the table has been split into Multiple physical objects are created, each divided into an independent object. Compared with a single table without partitions, a partitioned table has many advantages, including: concurrent statistical queries, fast archiving and deletion of partitioned data, decentralized storage, and better query performance.
Mysql5.7 and later query statements support specified partitions. For example: "SELECT * FROM t PARTITION (p0,p1) WHERE c < 5
" The same applies to specified partitionsDELETE, INSERT, REPLACE, UPDATE, and LOAD DATA, LOAD XML
.
Database version: mysql5.7.12
Whether it supports partitions
SHOW PLUGINS ;
If the status of the query partition is active, it means that partitioning is supported. If it is a source code installation, add "-DWITH_PARTITION_STORAGE_ENGINE=1
" during the compilation process.
Note: MERGE, CSV, or FEDERATED storage engines do not support partitioning. All partitions of the same table must use the same storage engine. You cannot use MYISAM for partition 1 and INNODB for partition 2; different partition tables can use different storage engines. .
Introduction to Partitions
At present, the partition types available for mysql mainly include the following:
RANGE partitioning: Based on a given continuous interval range, RANGE is mainly based on integer partitioning. For non-integer fields, expressions need to be used to convert them into integers.
LIST partitioning: is partitioned based on the listed list of enumeration values.
COLUMNS partition: Can directly partition non-integer fields without conversion through expressions. At the same time, COLUMNS partition also supports multiple field combination partitions. Only RANGELIST has COLUMNS partition. COLUMNS is an upgrade of RANGE and LIST partitions.
HASH partitioning: Distribute data to different partitions based on the given number of partitions. HASH partitioning can only HASH integers, and non-integer fields can only be converted into integers through expressions.
KEY partitioning: Supports partitioning of all data types except text and BLOB. Key partitioning can be partitioned directly based on fields without conversion to integers.
Instructions
1. Pay attention to the case sensitivity of partition names and keyword issues.
2. Regardless of the partition type, either there is no primary key or unique key in the partitioned table, or the primary key or unique key is included in the partition column. For tables with primary keys or unique keys, fields other than the primary key or unique key cannot be used as partitions. field.
前 The previous version of the 3.5.7 version shows the execution plan of the partition: Explain Partitions; after 5.74. There is no mandatory requirement for the partition column to be non-null. It is recommended that the partition column be NOT NULL. In the RANGE partition, if a NULL value is inserted into the partition column, it will be treated as the smallest value. In the LIST partition, the NULL value must be In the enumeration list, otherwise the insertion fails, and NULL values in the HASH/KEY partition will be treated as 0.
5. Mysql provides conversion functions based on time type fields "YEAR(), MONTH(), DAY(), TO_DAYS(), TO_SECONDS(), WEEKDAY(), DAYOFYEAR()"
6. After splitting and merging partitions, the statistical information of the modified partition will be invalid. The statistical information of the unmodified partition will still be there, and it will not affect the addition of the newly inserted value to the statistical information. At this time, the Analyze operation needs to be performed on the table.
7. It is recommended to use COLUMNS partitioning for RANGLIST partitioning of non-integer fields.
Delete and add partitionsThe usage of each partition is introduced in detail in the introduction of each partition, but they all introduce the creation of partitions and the modification and deletion of individual partitions when creating a table. You can also add partitions to an existing table, which can be done all at once. Delete the entire table partition.
1. Remove the table partition
ALTER TABLE tablename REMOVE PARTITIONING ;
2. Create a partition for a table that already has records. Take adding a range partition as an example. The syntax is the same as creating a table and creating a partition.
ALTER TABLE `tb_partition`.`tb_varchar` PARTITION BY RANGE(id) PARTITIONS 3( PARTITION part0 VALUES LESS THAN (5000), PARTITION part1 VALUES LESS THAN (10000), PARTITION part2 VALUES LESS THAN (MAXVALUE)) ;
Summary
The above is the entire introduction and summary of MySQL partitioning. I hope this article will be helpful to everyone when using mysql.

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.

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

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.

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.

The key to installing MySQL elegantly is to add the official MySQL repository. The specific steps are as follows: Download the MySQL official GPG key to prevent phishing attacks. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting

Installing MySQL on CentOS involves the following steps: Adding the appropriate MySQL yum source. Execute the yum install mysql-server command to install the MySQL server. Use the mysql_secure_installation command to make security settings, such as setting the root user password. Customize the MySQL configuration file as needed. Tune MySQL parameters and optimize databases for performance.

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.

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.
