为了账号安全,请及时绑定邮箱和手机立即绑定

MariaDB 10之TokuDB存储引擎

标签:
MySQL


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

DML only INSERTs  no  yes yes

Transactions  no  no  yes yes

ACID  no  no  yes yes

Indexes no  yes yes yes

Online DDL  no  no  yes * yes **

MariaDB10,已经内嵌了TokuDB存储引擎,安装超简单,如下:

wKiom1OtPlfCi288AAKnwHfPFQI258.jpg

wKiom1OtM0XAGza2AAHWxjkDGtQ067.jpg

wKioL1OtMxeBeePWAAHBl7c2-ic775.jpg

wKiom1OtM0WD21kHAALMk2W8OOQ524.jpg

调优:

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简单的多,只是有一些参数变化,或者你直接使用默认参数,也运行的良好。

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)

The most important of the tokudb_ variables is arguably tokudb_cache_size. The test server where I ran those tests (test01) have a little less than 1G of memory and as you can see above TokuDB is “reserving” half (50%) of them to itself. That’s the default behavior but, of course, you can change it. And you must do it if you are also going to have InnoDB tables on your server – you should not overcommit memory between InnoDB and TokuDB engines. Shlomi Noach wrote a good post explaining the main TokuDB-specific variables and what they do. It’s definitely a worth read.

(最重要的参数是tokudb_cache_size,它类似innodb_buffer_pool_size,如果你的服务器跑着两种引擎InnoDB和TokuDB,那么你得小心点了,别把内存用光了。)

参考:http://www.mysqlperformanceblog.com/2014/06/26/percona-server-with-tokudb-beta-installation-configuration/

注:因此引擎比较新,没有任何生产经验,可以试图把一些LOG日志表改为TokuDB引擎,这样在性能和磁盘空间使用率上都有较大幅度的提升。此外,该引擎的备份工具是收费,所以备份的时候可以采取冷备份。

wKioL1Ow1F6ihz-EAAHrNLCc_ao324.jpg

参考:http://www.mysqlperformanceblog.com/2014/06/23/getting-to-know-tokudb-for-mysql/

©著作权归作者所有:来自51CTO博客作者hcymysql的原创作品,如需转载,请注明出处,否则将追究法律责任

mariadbtokudbMySQL管理

3


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消