Home > Database > Mysql Tutorial > body text

Detailed explanation of choosing the appropriate engine and engine conversion for MySQL

黄舟
Release: 2017-09-21 11:00:12
Original
1114 people have browsed it

How do we choose the right engine? Here is a simple summary: "Unless you need to use some features that InnoDB does not have, and there is no other way to replace it, you should give priority to the InnoDB engine."

Unless it is absolutely necessary, Otherwise, it is not recommended to mix multiple storage engines, otherwise it may cause a series of complex problems and some potential bugs.

Several major factors to consider when using different engines:

1. Transaction

If necessary Transaction support, then InnoDB or XtraDB are currently the most stable. If transactions are not required and the main operations are SELECT and INSERT, MyISAM is a good choice.

2. Backup

If you need online hot backup, InnoDB is the basic choice.

3. Crash recovery

When the amount of data is relatively large, how to quickly recover after a system crash is an issue that needs to be considered, and this is also The reason many people choose InnoDB even if they don't need transaction support.

Conversion table engine:

## 1.ALTER TABLE

    The simplest method is the ALTER TABLE statement:   mysql> ALTER TABLE mytable ENGINE = InnoDB;

    This syntax is applicable to any storage engine, but it takes a long time to execute.

The storage engine of the conversion table will lose all features related to the original engine.

2. Export and Import

You can use the mysqldump tool to export the data to a file, and then modify the CREATE TABLE statement in the file Storage engine, please pay attention to modify the table name.

At the same time, please note that the mysqldump tool will automatically add the DROP TABLE statement before the CREATE TABLE statement by default to be careful of data loss.

3. Creation and query

To combine the first and second methods, first create a new storage engine table, and then use INSTER ...SELECT syntax to import data

 mysql> CREATE TABLE innodb_table LIKE myisam_table;
       mysql>ALTER TABLE innodb_table ENGINE=InnoDB;
       mysql>INSTER INTO innodb_table SELECT * FROM myisam_table;
Copy after login

If the amount of data is large, it can be processed in batches, and transaction submission operations are performed for each piece of data to avoid undo caused by large transactions. Percona Toolkit provides a pt-online-schema-change tool, which can be executed simply and conveniently to avoid errors caused by manual operations.

The above is the detailed content of Detailed explanation of choosing the appropriate engine and engine conversion for MySQL. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!