MariaDB 存储引擎一览(官方文档翻译)
Choosing the Right Storage Engine选择合适的存储引擎
Contents内容
A high-level overview of the main reasons for choosing a particular storage engine:有关选择特定存储引擎的主要原因的高层概述:
Topic List主题清单
General Purpose一般用途
- XtraDB is the best choice in the majority of cases until MariaDB 10.1. 在MariaDB 10.1之前的大多数情况下,XtraDB是最佳选择。It is a performance-enhanced fork of InnoDB and is MariaDB's default engine until MariaDB 10.1. 它是InnoDB的性能增强分支,并且是MariaDB 10.1之前的默认引擎。
- InnoDB is a good general transaction storage engine. InnoDB是一个很好的常规事务存储引擎。It is the default storage engine from MariaDB 10.2 (as well as MySQL). 它是MariaDB 10.2(以及MySQL)的默认存储引擎。For earlier releases, XtraDB is a performance enhanced fork of InnoDB and is usually preferred. 对于早期版本,XtraDB是InnoDB的性能增强分支,通常是首选。
- Aria, MariaDB's more modern improvement on MyISAM, has a small footprint and allows for easy copying between systems. MariaDB是对MyISAM的更现代的改进,Aria占用空间小,并且允许在系统之间轻松进行复制。
- MyISAM has a small footprint and allows for easy copying between systems. MyISAM占用空间小,可轻松在系统之间进行复制。MyISAM is MySQL's oldest storage engine. MyISAM是MySQL最古老的存储引擎。There is usually little reason to use it except for legacy purposes. 除了遗留用途,通常没有其他理由使用它。Aria is MariaDB's more modern improvement. Aria是MariaDB的更现代改进。
Scaling, Partitioning缩放,分区
When you want to split your database load on several servers or optimize for scaling. 当您想要在几台服务器上拆分数据库负载或为扩展而优化时。We also suggest looking at Galera, a synchronous multi-master cluster.我们还建议您查看Galera,一个同步的多主群集。
- TokuDB is a transactional storage engine which is optimized for workloads that do not fit in memory, and provides a good compression ratio. TokuDB是一个事务存储引擎,针对不适合内存的工作负载进行了优化,并提供了良好的压缩率。
- Spider uses partitioning to provide data sharding through multiple servers. Spider使用分区来通过多个服务器提供数据分片。
- ColumnStore utilizes a massively parallel distributed data architecture and is designed for big data scaling to process petabytes of data. ColumnStore利用大规模并行分布式数据架构,专为大数据扩展而设计,以处理PB级数据。
- The MERGE storage engine is a collection of identical MyISAM tables that can be used as one. MERGE存储引擎是相同的MyISAM表的集合,可以用作一个表。"Identical" means that all tables have identical column and index information. “相同”是指所有表具有相同的列和索引信息。
Compression / Archive压缩/存档
- MyRocks enables greater compression than InnoDB, as well as less write amplification giving better endurance of flash storage and improving overall throughput. 与InnoDB相比,MyRocks可以实现更大的压缩,并且写入放大更少,从而可以更好地承受闪存存储并提高整体吞吐量。
- TokuDB is a transactional storage engine which is optimized for workloads that do not fit in memory, and provides a good compression ratio. TokuDB是一个事务存储引擎,针对不适合内存的工作负载进行了优化,并提供了良好的压缩率。
- The Archive storage engine is, unsurprisingly, best used for archiving. 毫无疑问,存档存储引擎最适合用于存档。
Connecting to Other Data Sources连接到其他数据源
When you want to use data not stored in a MariaDB database. 当您要使用未存储在MariaDB数据库中的数据时。
- CONNECT allows access to different kinds of text files and remote resources as if they were regular MariaDB tables. CONNECT允许访问不同类型的文本文件和远程资源,就像它们是常规的MariaDB表一样。
- The CSV storage engine can read and append to files stored in CSV (comma-separated-values) format. CSV存储引擎可以读取并追加到以CSV(逗号分隔值)格式存储的文件。However, since MariaDB 10.0, CONNECT is a better choice and is more flexibly able to read and write such files. 但是,从MariaDB 10.0开始,CONNECT是一个更好的选择,并且能够更灵活地读取和写入此类文件。
- FederatedX uses libmysql to talk to the data source, the data source being a remote RDBMS. FederatedX使用libmysql与数据源通信,该数据源是远程RDBMS。Currently, since FederatedX only uses libmysql, it can only talk to another MySQL RDBMS. 当前,由于FederatedX仅使用libmysql,因此它只能与另一个MySQL RDBMS通信。
- CassandraSE is a storage engine allowing access to an older version of Apache Cassandra NoSQL DBMS. CassandraSE是一种存储引擎,允许访问较旧版本的Apache Cassandra NoSQL DBMS。It was relatively experimental, and is no longer being actively developed. 它是相对实验性的,不再被积极开发。
Search Optimized搜索优化
Search engines optimized for search. 针对搜索进行了优化的搜索引擎。
- SphinxSE is used as a proxy to run statements on a remote Sphinx database server (mainly useful for advanced fulltext searches). SphinxSE用作在远程Sphinx数据库服务器上运行语句的代理(主要用于高级全文搜索)。
- Mroonga provides fast CJK-ready full text searching using column store. Mroonga使用列存储提供快速的CJK就绪全文搜索。
Cache, Read-only缓存,只读
- MEMORY does not write data on-disk (all rows are lost on crash) and is best-used for read-only caches of data from other tables, or for temporary work areas. MEMORY不会在磁盘上写入数据(崩溃时所有行都会丢失),并且最适合用于其他表的数据的只读缓存或临时工作区。With the default XtraDB and other storage engines having good caching, there is less need for this engine than in the past. 在默认的XtraDB和其他具有良好缓存的存储引擎的情况下,与过去相比,对该引擎的需求减少了。
Other Specialized Storage Engines其他专用存储引擎
- S3 Storage Engine is a read-only storage engine that stores its data in Amazon S3. S3 Storage Engine是一个只读存储引擎,将其数据存储在Amazon S3中。
- Sequence allows the creation of ascending or descending sequences of numbers (positive integers) with a given starting value, ending value and increment, creating virtual, ephemeral tables automatically when you need them. 序列允许创建具有给定起始值,终止值和增量的数字升序或降序(正整数),并在需要时自动创建虚拟的临时表。
- The BLACKHOLE storage engine accepts data but does not store it and always returns an empty result. BLACKHOLE存储引擎接受数据,但不存储数据,并且始终返回空结果。This can be useful in replication environments, for example, if you want to run complex filtering rules on a slave without incurring any overhead on a master. 例如,如果要在从属服务器上运行复杂的过滤规则而又不会在主服务器上产生任何开销,则这在复制环境中很有用。
- OQGRAPH allows you to handle hierarchies (tree structures) and complex graphs (nodes having many connections in several directions). OQGRAPH允许您处理层次结构(树结构)和复杂图(节点在多个方向上具有许多连接)。
Alphabetical List按字母顺序排列
- The Archive storage engine is, unsurprisingly, best used for archiving.毫无疑问,存档存储引擎最适合用于存档。
- Aria, MariaDB's more modern improvement on MyISAM, has a small footprint and allows for easy copy between systems.MariaDB在MyISAM上进行了更现代的改进,占地面积小,并且允许在系统之间轻松复制。
- The BLACKHOLE storage engine accepts data but does not store it and always returns an empty result. This can be useful in replication environments, for example, if you want to run complex filtering rules on a slave without incurring any overhead on a master.
- CassandraSE is a storage engine allowing access to an older version of Apache Cassandra NoSQL DBMS. It was relatively experimental, and is no longer being actively developed.
- ColumnStore utilizes a massively parallel distributed data architecture and is designed for big data scaling to process petabytes of data.
- CONNECT allows access to different kinds of text files and remote resources as if they were regular MariaDB tables.
- The CSV storage engine can read and append to files stored in CSV (comma-separated-values) format. However, since MariaDB 10.0, CONNECT is a better choice and is more flexibly able to read and write such files.
- FederatedX uses libmysql to talk to the data source, the data source being a remote RDBMS. Currently, since FederatedX only uses libmysql, it can only talk to another MySQL RDBMS.
- InnoDB is a good general transaction storage engine. 是一个很好的常规事务存储引擎。It is the default storage engine from MariaDB 10.2 (as well as MySQL). 它是MariaDB 10.2(以及MySQL)的默认存储引擎。For earlier releases, XtraDB is a performance enhanced fork of InnoDB and is usually preferred.对于早期版本,XtraDB是InnoDB的性能增强分支,通常是首选。
- The MERGE storage engine is a collection of identical MyISAM tables that can be used as one. "Identical" means that all tables have identical column and index information.
- MEMORY does not write data on-disk (all rows are lost on crash) and is best-used for read-only caches of data from other tables, or for temporary work areas. 不会在磁盘上写数据(崩溃时所有行都会丢失),并且最好用于其他表的数据的只读缓存或临时工作区。With the default XtraDB and other storage engines having good caching, there is less need for this engine than in the past.在默认的XtraDB和其他具有良好缓存的存储引擎的情况下,与过去相比,对该引擎的需求减少了。
- Mroonga provides fast CJK-ready full text searching using column store.
- MyISAM has a small footprint and allows for easy copying between systems. 占用空间小,可轻松在系统之间进行复制。MyISAM is MySQL's oldest storage engine. MyISAM是MySQL最古老的存储引擎。There is usually little reason to use it except for legacy purposes. 除了遗留用途,通常没有其他理由使用它。Aria is MariaDB's more modern improvement.Aria是MariaDB的更现代改进。
- MyRocks enables greater compression than InnoDB, as well as less write amplification giving better endurance of flash storage and improving overall throughput.与InnoDB相比,它可以实现更大的压缩,并且写入放大更少,从而使闪存具有更好的耐用性并提高了总体吞吐量。
- OQGRAPH allows you to handle hierarchies (tree structures) and complex graphs (nodes having many connections in several directions).
- S3 Storage Engine is a read-only storage engine that stores its data in Amazon S3.
- Sequence allows the creation of ascending or descending sequences of numbers (positive integers) with a given starting value, ending value and increment, creating virtual, ephemeral tables automatically when you need them.
- SphinxSE is used as a proxy to run statements on a remote Sphinx database server (mainly useful for advanced fulltext searches).
- Spider uses partitioning to provide data sharding through multiple servers.
- TokuDB is a transactional storage engine which is optimized for workloads that do not fit in memory, and provides a good compression ratio.
- XtraDB is the best choice in the majority of cases until MariaDB 10.1. It is a performance-enhanced fork of InnoDB and is MariaDB's default engine until MariaDB 10.1.
复制请注明出处,在世界中挣扎的灰太狼