TokuDB介绍¶
重要的
从雷竞技下载官网Percona Server for MySQL 8.0.28-19,不再支持TokuDB存储引擎。我们已经从安装包中删除了存储引擎,并在二进制构建中禁用了存储引擎。
从雷竞技下载官网Percona Server for MySQL 8.0.26-16,二进制构建和包包括但禁用TokuDB存储引擎插件。tokudb_enabled选项和tokudb_backup_enabled选项控制插件的状态,默认设置为FALSE。尝试加载插件的结果是插件无法初始化并打印弃用消息。
我们建议将数据迁移到MyRocks存储引擎。为了使插件能够迁移到另一个存储引擎,在my.cnf文件中将tokudb_enabled和tokudb_backup_enabled选项设置为TRUE,并重新启动服务器实例。然后,您可以加载插件。
中声明TokuDB存储引擎已弃用雷竞技下载官网Percona Server for MySQL 8.0。有关更多信息,请参阅Percona博客文章:雷竞技下载官网注意:TokuDB支持的变化和未来从Percona服务器删除MySQL 8.0雷竞技下载官网。
TokuDB是一个高度可伸缩、零维护停机的MySQL存储引擎,提供基于索引的查询加速、改进的复制性能、无与伦比的压缩和实时模式修改。的TokuDB存储引擎是一个可扩展的,ACID和MVCC兼容的存储引擎,提供基于索引的查询改进,提供在线模式修改,并减少硬盘驱动器和闪存的副本延迟。这个存储引擎是专门为写密集型工作负载的高性能而设计的,这是通过分形树索引实现的。
雷竞技下载官网用于MySQL的Percona服务器是否与单独可用的兼容TokuDB存储引擎包。的TokuDB引擎必须单独下载,然后作为插件组件启用。这个包可以与标准安装在一起雷竞技下载官网用于MySQL的Percona服务器发布,不需要任何特别改编的版本雷竞技下载官网用于MySQL的Percona服务器。
警告
只有雷竞技下载官网Percona提供TokuDB发动机应与雷竞技下载官网用于MySQL的Percona服务器。一个TokuDB从其他来源下载的引擎不兼容。TokuDB不同版本的MySQL文件格式不一样。从一个变体迁移到任何其他变体都需要逻辑数据转储和重新加载。
独有的附加功能TokuDB包括:
高达25倍的数据压缩
快速插入
使用免读复制消除复制延迟
热模式更改
〇创建热门索引TokuDB在向表中添加索引时,表支持插入、删除和查询,不会停机
热列的添加、删除、展开和重命名TokuDB当alter表添加、删除、展开或重命名列时,表支持插入、删除和查询,而不会停机
在线备份
请注意
的TokuDB存储引擎不支持nowait和跳过锁中引入的修饰符InnoDB存储引擎MySQL8.0.
有关安装和使用的更多信息TokuDB请按下列连结:
从TokuDB获得最大收益¶
压缩
*TokuDB*压缩磁盘上的所有数据,包括索引。压缩通过减少所需的存储量来降低成本,并为额外的索引释放磁盘空间,从而提高查询性能。根据数据的可压缩性,我们已经看到压缩比高达25倍的高压缩。压缩还可以提高性能,因为需要从磁盘读取和写入磁盘的数据更少。
快速插入和删除
TokuDB的分形树技术支持快速索引插入和删除。分形树在索引最佳点(顺序数据)上与b树匹配,对于具有高基数的随机数据,它的速度快了两个数量级。
消除副本延迟
*TokuDB*复制副本可以配置为处理几乎没有读IO的复制流。唯一性检查在*TokuDB*源上执行,可以在所有*TokuDB*副本上跳过。此外,基于行的复制确保在二进制日志中捕获所有行的前后图像,因此*TokuDB*副本可以利用Fractal Tree索引的强大功能,绕过传统的读-修改-写行为。这种“读自由复制”确保复制副本不会落后于源副本,并且可以用于读扩展、备份和灾难恢复,而不需要分片、昂贵的硬件或对可以复制的内容进行限制。
热索引创建
*TokuDB*允许在对现有表执行插入和查询时向该表添加索引。这意味着在添加索引时,*MySQL*可以连续运行,而不会阻塞查询或插入,并消除了更改索引所需的停机时间。
热列添加,删除,扩展和重命名
TokuDB*允许向现有表中添加新列,从现有表中删除现有列,在现有表中扩展' char ', ' varchar ', ' varbinary '和' integer '类型列,并在对现有表执行插入和查询时重命名现有列。
在线热备份
*TokuDB*可以在不停机的情况下创建在线数据库服务器的备份。
快速索引
在实践中,缓慢的索引通常会导致用户选择较少数量的次优索引,以跟上传入的数据速率。这些次优索引导致查询速度慢得不成比例,因为有索引的查询与没有索引的查询之间的速度差异可能是许多个数量级。因此,快速索引意味着快速查询。
集群键和其他索引改进
*TokuDB*表聚集在主键上。*TokuDB*还支持集群辅助键,在更广泛的查询上提供更好的性能。聚类键包括(或聚类)表中的所有列以及键。因此,在对集群键进行范围查询时,可以有效地检索任何列。另外,使用*TokuDB*,可以在索引中的任何索引中以及索引中的任何位置使用自动递增列。最后,*TokuDB*索引最多可以包含32个列。
减少老化/碎片
*TokuDB*可以运行更长的时间,可能是无限期地运行,而不需要执行转储/重新加载或' OPTIMIZE TABLE '来恢复数据库性能。关键是分形树在磁盘上存储数据的根本区别。由于默认情况下,分形树将以4MB的块(预压缩)存储数据,而InnoDB为16KB,因此*TokuDB*避免“数据库无序”的能力比InnoDB好250倍。
批量加载程序
*TokuDB*使用并行加载器创建表和离线索引。这个并行加载程序将使用多个内核来快速离线创建表和索引。
功能齐全的数据库
*TokuDB*支持完全符合acid的事务、MVCC(多版本并发控制)、序列化隔离级别、行级锁定和XA。TokuDB*可以扩展大量的客户端连接,即使对于大表也是如此。
锁诊断
TokuDB*为用户提供了诊断锁定和死锁问题的工具。有关更多信息,请参见[tokudb_troubleshooting.md# Lock - Visualization -in TokuDB](tokudb_troubleshooting.md)。
进度跟踪
在添加索引时运行' SHOW PROCESSLIST '提供已处理多少行的状态。运行' SHOW PROCESSLIST '还可以显示查询的进度,以及插入、删除和更新。这些信息有助于估计操作需要多长时间才能完成。
快速恢复
*TokuDB*支持非常快的恢复,通常不到一分钟。