MySql storage engine notes
MySql storage engine
MySql Databases have many storage engines. Different engines have different features and have their own advantages. I recently read the MySQL technology insider, just taking notes.
InnoDB Storage Engine
This is the default storage engine since MySQL 5.5.8 and is also the search engine I usually use. Transaction operations are supported, mainly for online transaction processing applications. It features a row lock design and supports foreign keys. It also supports default read operations like Oracle's non-locked read operations without locks.
You can use version control to obtain high concurrency and implement the four isolation levels of the SQL standard. The default value is REPEATABLE (which can prevent dirty read and non-repeated read ). At the same time, a next-key locking policy is used to perform secondary write adaptive hash indexes, pre-reading, and other high-performance and high-availability functions.
InnoDB is a cluster engine.
MyISAM storage engine
This engine does not support transactions or table lock design, but supports full-text indexing.
This is the default storage engine before MysQL 5.5.8 (except for Windows ).
NDB storage engine
I have never used this engine, but it seems powerful.
It is a Cluster Storage engine, similar to RAC clusters, and is applicable to OLTP database applications.
Memory storage engine
This engine stores all data in the memory. Therefore, if it is restarted or crashed, all data will be lost. Therefore, it is more suitable for application scenarios such as temporary tables and dimension tables of data warehouses. The default value is hash index, not B + tree.
Infobright storage engine
This is a third-party storage engine that stores data by columns. It is not a row-store. Therefore, it is suitable for OLAP data applications.
NTSE storage engine
The engine developed by Netease is used internally and does not support transaction management (as if to be supported later ).
There are many other engines.