Home  >  Article  >  Database  >  An explanation of the six major differences between Mysql storage engines InnoDB and Myisam

An explanation of the six major differences between Mysql storage engines InnoDB and Myisam

怪我咯
怪我咯Original
2017-05-07 11:39:031476browse

MyISAM
InnoDB
Differences in composition:

Each MyISAM is stored as three files on the disk. The name of the first file begins with the name of the table and the extension indicates the file type.

.frm file stores table definitions.

The extension of the data file is .MYD (MYData).

The extension of the index file is .MYI (MYIndex).

Disk-based resources are the InnoDB table space data file and its log file. The size of the InnoDB table is only limited by the size of the operating system file, generally 2GB


Transaction processing aspect:

The MyISAM type table emphasizes performance, and its execution times are faster than the InnoDB type, but does not provide transaction support

InnoDB provides transaction support, foreign keys and other advanced database functions

SELECT UPDATE,INSERT,DeleteOperation

If you perform a large number of SELECTs, MyISAM is a better choice


1.If your data performs a large number of INSERT or UPDATE, for performance reasons, InnoDB table


2.DELETE FROM table, InnoDB will not Re-create the table and delete it row by row.

3.LOAD TABLE FROM MASTER operation does not work for InnoDB. The solution is to first change the InnoDB table to a MyISAM table, import the data and then change it to an InnoDB table, but for Tables that use additional InnoDB features (such as foreign keys) are not applicable

Operations on AUTO_INCREMENT

Per Internal handling of an AUTO_INCREMEN column in a table.


MyISAM automatically updates for INSERT and UPDATE operations This column . This makes AUTO_INCREMENT columns faster (at least 10%). After the value at the top of the sequence is deleted, it cannot be used again. (When the AUTO_INCREMENT column is defined as the last column of a multi-column index, it is possible to reuse values ​​removed from the top of the sequence).

AUTO_INCREMENT value can be reset with ALTER TABLE or myisamch

For AUTO_INCREMENT type fields, InnoDB must contain an index with only this field, but in the MyISAM table, it can be created together with other fields Union index

Better and faster auto_increment handling

If you specify the AUTO_INCREMENT column for a table, the InnoDB table handle in the data dictionary contains a counter called the autoincrement counter, which Used to assign a new value to the column.


Automatic growth counter is only stored in the main memory, instead of existing on the disk

The algorithm implementation of the calculator, please refer to













######

The above is the detailed content of An explanation of the six major differences between Mysql storage engines InnoDB and Myisam. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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