本文共 3244 字,大约阅读时间需要 10 分钟。
TokuDB存储引擎,你可以把它看做是ARCHIVE存储引擎的升级版,它拥有了密集压缩,并且支持事务。
压缩比:
Engine | Compression | Table size [MB] |
---|---|---|
InnoDB | none | 2272 |
InnoDB | KEY_BLOCK_SIZE=8 | 1144 |
InnoDB | KEY_BLOCK_SIZE=4 | 584 |
MyISAM | none | 1810 |
MyISAM | compressed with myisampack | 809 |
Archive | default | 211 |
TokuDB | ZLIB | 284 |
TokuDB | LZMA | 208 |
特性:
Feature | Archive | MyISAM (compressed) | InnoDB | TokuDB |
only INSERTs | no | yes | yes | |
Transactions | no | no | yes | yes |
no | no | yes | yes | |
Indexes | no | yes | yes | yes |
Online DDL | no | no | yes * | yes ** |
MariaDB10,已经内嵌了TokuDB存储引擎,安装超简单,如下:
调优:
Configuration: what’s really important
As noted by Vadim long ago, “Tuning of TokuDB is much easier than InnoDB, there’re only a few parameters to change, and actually out-of-box things running pretty well“:
TokuDB调优比InnoDB简单的多,只是有一些参数变化,或者你直接使用默认参数,也运行的良好。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | MariaDB [(none)]> show variables like '%tokudb%' ; +---------------------------------+-------------+ | Variable_name | Value | +---------------------------------+-------------+ | tokudb_alter_print_error | OFF | | tokudb_analyze_time | 5 | | tokudb_block_size | 4194304 | | tokudb_cache_size | 120926208 | | tokudb_checkpoint_lock | OFF | | tokudb_checkpoint_on_flush_logs | OFF | | tokudb_checkpointing_period | 60 | | tokudb_cleaner_iterations | 5 | | tokudb_cleaner_period | 1 | | tokudb_commit_sync | ON | | tokudb_create_index_online | ON | | tokudb_data_dir | | | tokudb_debug | 0 | | tokudb_directio | OFF | | tokudb_disable_hot_alter | OFF | | tokudb_disable_prefetching | OFF | | tokudb_disable_slow_alter | OFF | | tokudb_empty_scan | rl | | tokudb_fs_reserve_percent | 5 | | tokudb_fsync_log_period | 0 | | tokudb_hide_default_row_format | ON | | tokudb_init_flags | 11403457 | | tokudb_killed_time | 4000 | | tokudb_last_lock_timeout | | | tokudb_load_save_space | ON | | tokudb_loader_memory_size | 100000000 | | tokudb_lock_timeout | 4000 | | tokudb_lock_timeout_debug | 1 | | tokudb_log_dir | | | tokudb_max_lock_memory | 15115776 | | tokudb_pk_insert_mode | 1 | | tokudb_prelock_empty | ON | | tokudb_read_block_size | 65536 | | tokudb_read_buf_size | 131072 | | tokudb_read_status_frequency | 10000 | | tokudb_row_format | tokudb_zlib | | tokudb_tmp_dir | | | tokudb_version | 7.1.6 | | tokudb_write_status_frequency | 1000 | +---------------------------------+-------------+ 39 rows in set (0.01 sec) |
参考:
注:因此引擎比较新,没有任何生产经验,可以试图把一些LOG日志表改为TokuDB引擎,这样在性能和磁盘空间使用率上都有较大幅度的提升。此外,该引擎的备份工具是收费,所以备份的时候可以采取冷备份。
参考: