Detailed example of clearing table space fragmentation in MySQL
Cause of fragmentation
The storage of the table will be fragmented. Whenever a row of content is deleted, the space of this segment will become Blank, left blank, and a large number of deletions over a period of time will make this blank space larger than the space used to store the contents of the list; when performing an insertion operation, MySQL will try to use the blank space, However, if a certain empty space has not been occupied by data of appropriate size, and it still cannot be completely occupied, it will become fragmented; when MySQL scans the data, the object it scans is actually the upper limit of the capacity requirement of the list, that is, the data The part of the written area that is at the peak position; in this article, we mainly share with you the relevant information on MySQL clearing table space fragmentation examples. We hope that this article can help everyone, and friends in need can refer to it.
Recommended related mysql video tutorials: "mysql tutorial"
For example:
A table has 10,000 rows, each row has 10 words section will occupy 100,000 bytes of storage space. If the delete operation is performed, only one row will be left. The actual content will only be 10 bytes. However, when MySQL reads it, it will still treat it as a 100,000-byte table for processing. Therefore, The more fragmentation there is, the more it will affect query performance.
Check the fragment size of the table
(1) Check the fragment size of a certain table
mysql> SHOW TABLE STATUS LIKE '表名';
The value of the 'Data_free' column in the result is the fragment size
(2) List all fragmented tables
mysql> select table_schema db, table_name, data_free, engine from information_schema.tables where table_schema not in ('information_schema', 'mysql') and data_free > 0;
Clear table fragments
(1)MyISAM table
mysql> optimize table 表名
(2) InnoDB table
mysql> alter table 表名 engine=InnoDB
Engine is different, and the operation of OPTIMIZE is also different. MyISAM because the index and data are separated, OPTIMIZE can organize the data files and rearrange the index.
The OPTIMIZE operation will temporarily lock the table, and the larger the amount of data, the longer it will take. After all, it is not a simple query operation. Therefore, it is inappropriate to put the Optimize command in the program. No matter how low the hit rate is, when When the number of visits increases, the overall hit rate will also increase, which will definitely have a great impact on the running efficiency of the program. A better way is to be a shell and regularly check the information_schema.TABLES field in mysql , check the DATA_FREE field. If it is greater than 0, it means there is fragmentation.
Recommendation
Clearing the fragmentation operation will temporarily lock the table. The larger the amount of data, the longer it will take. , you can make a script and execute it regularly during low access times. For example, in the early morning of every Wednesday, check the DATA_FREE field. If it is greater than the warning value you think, clean it once.
Related recommendations:
mysql-MySQL clear table space problem (version 5.6)
Mysql query cache fragmentation, Cache hit rate and Nagios monitoring
Analyzing the causes of fragmentation in the mysql table and cleaning up_PHP tutorial
The above is the detailed content of Detailed example of clearing table space fragmentation in MySQL. For more information, please follow other related articles on the PHP Chinese website!

MySQL processes data replication through three modes: asynchronous, semi-synchronous and group replication. 1) Asynchronous replication performance is high but data may be lost. 2) Semi-synchronous replication improves data security but increases latency. 3) Group replication supports multi-master replication and failover, suitable for high availability requirements.

The EXPLAIN statement can be used to analyze and improve SQL query performance. 1. Execute the EXPLAIN statement to view the query plan. 2. Analyze the output results, pay attention to access type, index usage and JOIN order. 3. Create or adjust indexes based on the analysis results, optimize JOIN operations, and avoid full table scanning to improve query efficiency.

Using mysqldump for logical backup and MySQLEnterpriseBackup for hot backup are effective ways to back up MySQL databases. 1. Use mysqldump to back up the database: mysqldump-uroot-pmydatabase>mydatabase_backup.sql. 2. Use MySQLEnterpriseBackup for hot backup: mysqlbackup--user=root-password=password--backup-dir=/path/to/backupbackup. When recovering, use the corresponding life

The main reasons for slow MySQL query include missing or improper use of indexes, query complexity, excessive data volume and insufficient hardware resources. Optimization suggestions include: 1. Create appropriate indexes; 2. Optimize query statements; 3. Use table partitioning technology; 4. Appropriately upgrade hardware.

MySQL view is a virtual table based on SQL query results and does not store data. 1) Views simplify complex queries, 2) Enhance data security, and 3) Maintain data consistency. Views are stored queries in databases that can be used like tables, but data is generated dynamically.

MySQLdiffersfromotherSQLdialectsinsyntaxforLIMIT,auto-increment,stringcomparison,subqueries,andperformanceanalysis.1)MySQLusesLIMIT,whileSQLServerusesTOPandOracleusesROWNUM.2)MySQL'sAUTO_INCREMENTcontrastswithPostgreSQL'sSERIALandOracle'ssequenceandt

MySQL partitioning improves performance and simplifies maintenance. 1) Divide large tables into small pieces by specific criteria (such as date ranges), 2) physically divide data into independent files, 3) MySQL can focus on related partitions when querying, 4) Query optimizer can skip unrelated partitions, 5) Choosing the right partition strategy and maintaining it regularly is key.

How to grant and revoke permissions in MySQL? 1. Use the GRANT statement to grant permissions, such as GRANTALLPRIVILEGESONdatabase_name.TO'username'@'host'; 2. Use the REVOKE statement to revoke permissions, such as REVOKEALLPRIVILEGESONdatabase_name.FROM'username'@'host' to ensure timely communication of permission changes.


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

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Chinese version
Chinese version, very easy to use

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

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
