search
HomeDatabaseMysql TutorialIntroduction to the MERGE storage engine in Mysql (code example)

This article brings you an introduction to the MERGE storage engine in Mysql (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

The MERGE storage engine treats a set of MyISAM data tables as a logical unit, allowing us to query them at the same time. Each member of the MyISAM data table that constitutes a MERGE data table structure must have exactly the same table structure. The data columns of each member data table must be defined with the same name and type in the same order, and the indexes must be defined in the same order and in the same way. Suppose you have several log data tables, and their contents are log record items for each year in the past few years. Their definitions are as follows, YY represents the year (recommended course: MySQL Tutorial)

CREATE TABLE log_YY ( 
    dt DATETIME NOT NULL, 
    info VARCHAR(100) NOT NULL, 
    INDEX (dt) 
) ENGINE = MyISAM;

Assume that the current collection of log data tables includes log_2004, log_2005, log_2006, log_2007, and you can create a MERGE data table as shown below to group them into one logical unit:

CREATE TABLE log_merge ( 
    dt DATETIME NOT NULL, 
    info VARCHAR(100) NOT NULL, 
    INDEX(dt) 
) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007);

ENGINE option The value must be MERGE. The UNION option lists the related data tables that will be included in this MERGE data table. After this MERGE is created, you can query it just like any other data table, except that each query will affect each member data table that makes up it at the same time. The following query allows us to know the total number of data rows in the above log data tables:

SELECT COUNT(*)FROM log_merge;

The following query is used to determine how many log record entries there are in each of the past few years:

SELECT YEAR(dt) AS y, COUNT(*) AS entries FROM log_merge GROUP BY y;

In addition to making it easy to reference multiple data tables at the same time without issuing multiple queries, the MERGE data table also provides the following conveniences.

1) The MERGE data table can be used to create a logical unit whose size exceeds the maximum length allowed by each MyISAM data table
2) The compressed data table is included in the MERGE data table. For example, after the end of a certain year, you should no longer add records to the corresponding log file, so you can use the myisampack tool to compress it to save space, and the MERGE data table can still work as usual
 3 ), MERGE data table also supports DELETE and UPDATE operations. The INSERT operation is more troublesome because MySQL needs to know which member table the new data row should be inserted into. The definition of the MERGE data table can include an INSERT_METHOD option. The possible values ​​of this option are NO, FIRST, and LAST. Their meanings are that the INSERT operation is prohibited and new data rows will be inserted into the current UNION option. the first data table or the last data table. For example, the following definition treats an INSERT operation on the log_merge table as if it were an INSERT on the log_2007 table, which is the last table listed in the UNION option:

CREATE TABLE log_merge( 
    dt DATETIME NOT NULL, 
    info VARCHAR(100) NOT NULL, 
    INDEX(dt) 
) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007) INSERT_METHOD = LAST;

Create a new member table log_2009 and let it have the same table structure, and then modify the log_merge data table to include log_2009: log_2009:

CREATE TABLE log_2009 LIKE log_2008; //根据旧表创建新表
ALTER TABLE log_merge UNION = (log_2004, log_2005, log_2006,log_2007,log_2008,log_2009);

The above is the detailed content of Introduction to the MERGE storage engine in Mysql (code example). For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:博客园. If there is any infringement, please contact admin@php.cn delete
MySQL: BLOB and other no-sql storage, what are the differences?MySQL: BLOB and other no-sql storage, what are the differences?May 13, 2025 am 12:14 AM

MySQL'sBLOBissuitableforstoringbinarydatawithinarelationaldatabase,whileNoSQLoptionslikeMongoDB,Redis,andCassandraofferflexible,scalablesolutionsforunstructureddata.BLOBissimplerbutcanslowdownperformancewithlargedata;NoSQLprovidesbetterscalabilityand

MySQL Add User: Syntax, Options, and Security Best PracticesMySQL Add User: Syntax, Options, and Security Best PracticesMay 13, 2025 am 12:12 AM

ToaddauserinMySQL,use:CREATEUSER'username'@'host'IDENTIFIEDBY'password';Here'showtodoitsecurely:1)Choosethehostcarefullytocontrolaccess.2)SetresourcelimitswithoptionslikeMAX_QUERIES_PER_HOUR.3)Usestrong,uniquepasswords.4)EnforceSSL/TLSconnectionswith

MySQL: How to avoid String Data Types common mistakes?MySQL: How to avoid String Data Types common mistakes?May 13, 2025 am 12:09 AM

ToavoidcommonmistakeswithstringdatatypesinMySQL,understandstringtypenuances,choosetherighttype,andmanageencodingandcollationsettingseffectively.1)UseCHARforfixed-lengthstrings,VARCHARforvariable-length,andTEXT/BLOBforlargerdata.2)Setcorrectcharacters

MySQL: String Data Types and ENUMs?MySQL: String Data Types and ENUMs?May 13, 2025 am 12:05 AM

MySQloffersechar, Varchar, text, Anddenumforstringdata.usecharforfixed-Lengthstrings, VarcharerForvariable-Length, text forlarger text, AndenumforenforcingdataAntegritywithaetofvalues.

MySQL BLOB: how to optimize BLOBs requestsMySQL BLOB: how to optimize BLOBs requestsMay 13, 2025 am 12:03 AM

Optimizing MySQLBLOB requests can be done through the following strategies: 1. Reduce the frequency of BLOB query, use independent requests or delay loading; 2. Select the appropriate BLOB type (such as TINYBLOB); 3. Separate the BLOB data into separate tables; 4. Compress the BLOB data at the application layer; 5. Index the BLOB metadata. These methods can effectively improve performance by combining monitoring, caching and data sharding in actual applications.

Adding Users to MySQL: The Complete TutorialAdding Users to MySQL: The Complete TutorialMay 12, 2025 am 12:14 AM

Mastering the method of adding MySQL users is crucial for database administrators and developers because it ensures the security and access control of the database. 1) Create a new user using the CREATEUSER command, 2) Assign permissions through the GRANT command, 3) Use FLUSHPRIVILEGES to ensure permissions take effect, 4) Regularly audit and clean user accounts to maintain performance and security.

Mastering MySQL String Data Types: VARCHAR vs. TEXT vs. CHARMastering MySQL String Data Types: VARCHAR vs. TEXT vs. CHARMay 12, 2025 am 12:12 AM

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

MySQL: String Data Types and Indexing: Best PracticesMySQL: String Data Types and Indexing: Best PracticesMay 12, 2025 am 12:11 AM

Best practices for handling string data types and indexes in MySQL include: 1) Selecting the appropriate string type, such as CHAR for fixed length, VARCHAR for variable length, and TEXT for large text; 2) Be cautious in indexing, avoid over-indexing, and create indexes for common queries; 3) Use prefix indexes and full-text indexes to optimize long string searches; 4) Regularly monitor and optimize indexes to keep indexes small and efficient. Through these methods, we can balance read and write performance and improve database efficiency.

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 Article

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

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.