Selection of MYSQL storage engine

Source: Internet
Author: User

The storage engine is the MYSQL component that handles SQL operations for different table types. InnoDB is the default, most versatile storage engine, and is also the official recommended storage engine, unless some specific cases are used. The storage engine for the table created by the CREATE TABLE statement in MYSQL 5.6 defaults to InnoDB. MYSQL server uses a pluggable storage engine architecture. It is capable of dynamically loading or unloading these storage engines at execution time. The ability to use the show ENGINES statement to view the storage engines supported by your MYSQL server.

The value of the support joins indicates whether an engine can be used by you: Yes, no, and default values, respectively, indicating that a storage engine is available, unavailable, available, and is the current default storage engine.
The storage engine supported by MYSQL 5.6

  • InnoDB: MYSQL 5.6 Version number is the default storage engine. InnoDB is a transaction-safe storage engine that provides the ability to commit, rollback, and crash recovery to protect user data. InnoDB's row-level locking and Oracle-style consistency lock-free reads increase its number of multiuser concurrency and performance. InnoDB stores user data in a clustered index to reduce the I/O overhead of normal queries based on primary keys. To ensure the integrity of the data, InnoDB also supports foreign key constraints.

  • MyISAM: Table-level locking limits its performance on read-write loads, so it is often applied to data scenarios that are read-only or read-only.

  • Memory: Stores all of the data in RAM and applies to scenarios where non-critical data is found by high speed. The Memory engine was once called the HEAP engine.

    Its use case is decreasing: the InnoDB memory buffer provides a common and durable way to keep most or all of the data in memory. Ndbcluster provides high-speed key-value access to large distributed datasets.

  • CSV: Its table is really a comma-delimited text file. The CSV table agrees that you import the exported data in CSV format, with the same read and write format and script and application interaction data. Since the CSV table does not have an index, it is best to put the data in the InnoDB table in normal operation. Just use the CSV table in the import or export phase.
  • Archive: Black hole storage engine. Unix-like/dev/null,archive only receive but do not save data. Queries on tables of such engines often return an empty set.

    Such tables can be applied to DML statements that need to be sent from the server, but the primary server does not retain such data in the master-slave configuration of the backup.

  • NDB: (aka Ndbcluster)--Such a cluster data engine is particularly suitable for applications that require the highest level of uptime and availability. Note: The NDB storage engine is not supported in the standard MYSQL 5.6 version number. The version numbers that can support MySQL cluster at the moment are: MySQL Cluster NDB 7.1 based on MySQL 5.1 and MySQL Cluster NDB 7.2 based on MySQL 5.5. MySQL Cluster NDB 7.3 based on MySQL 5.6. MySQL Cluster NDB 7.4, also based on MySQL 5.6, is now in the development phase.

  • Merge: Agree with MySql DBA or developer to group a series of identical MyISAM tables and reference them as an object.

    Ideal for hyper-scale data scenarios. such as data warehouses.

  • Federated: provides the ability to join different MYSQL servers from multiple physical machines to create a logical database. Suitable for distributed or data-market scenarios.
  • Example: This storage engine holds a sample of the MYSQL source code that illustrates how to start writing a new storage engine. It is intended for developers who are interested.

    Such a storage engine is a "stub" that does nothing. You can use such an engine to create a table, but you can't save whatever data to it. It is also not possible to retrieve whatever index from them.

You are not constrained to use the same storage engine for the entire server or schema. You can define the storage engine for all tables. For example, an application might be dominated by a InnoDB table. A CSV table is used to export the data to the spreadsheet. A little MEMORY table is used for temporary work space.



Storage Engine selection These storage engines provided by MySQL are designed for different application cases. The following table provides an overview of the storage engine provided by MYSQL:

Storage Engine Feature summary
features MyISAM Memory InnoDB Archive NDB
Storage caps NDB Ram 64TB No 384EB
Transaction support Whether Whether Is Whether Is
Lock particle size Table Table Yes Table Yes
MVCC Whether Whether Is Whether Whether
Geo-spatial data type support Is Whether Is Is Is
Geo-Spatial Index support Is Whether Is Whether Whether
B-tree Index Is Is Is Whether Whether
T-tree Index Whether Whether Whether Whether Is
Hash Index Whether Is Whether Whether Is
Full-Text Search index Is Whether Is Whether Whether
Clustered index Whether Whether Is Whether Whether
Data caching Whether N/A Is Whether Is
Index cache Is N/A Is Whether Is
Data compression Is Whether Is Is Whether
Data encryption Is Is Is Is Is
Support DB Cluster Whether Whether Whether Whether Is
Support Master-Slave Is Is Is Is Is
Support for foreign keys Whether Whether Is Whether Whether
Backup/Point-in-time recovery Is Is Is Is Is
Support for query caching Is Is Is Is Is
Update statistics for a data dictionary Is Is Is Is Is


Attention
    • InnoDB support for geo-spatial indexing in MySQL 5.7.5 and later version numbers
    • InnoDB Hash index optimizations built into the properties of its adaptive hash index
    • InnoDB Support Fulltext index in MYSQL 5.6.4 and later version numbers
    • MyISAM supports data compression only when the format is compressed in a row.

      MyISAM table with row compression is read-only

    • InnoDB table compression requires InnoDB Barracuda file format
    • MYSQL data encryption is provided by the server's cryptographic function, not the storage engine
    • Features such as master-slave support, backup/point-in-time recovery are also provided by the server, not the storage engine
Original link: http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html.

Selection of MYSQL storage engine

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.