MariaDB 10之TokuDB存儲引擎

TokuDB存儲引擎,你可以把它看做是ARCHIVE存儲引擎的升級版,它擁有了密集壓縮,並且支持事務。


壓縮比:

EngineCompressionTable 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


特性:

FeatureArchiveMyISAM (compressed)InnoDBTokuDB
DMLonly INSERTsnoyesyes
Transactionsnonoyesyes
ACIDnonoyesyes
Indexesnoyesyesyes
Online DDLnonoyes *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/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章