问题标签 [tokudb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
46 浏览

tokudb - 在mysql(tokudb)中的表中插入/替换10-20百万条记录的更好方法是什么

数据结构 :

主表(5亿):

创建表USER_DETAILS

visitor_idvarchar(50) 默认为空,

partition_id INT,

related_text 长文本,

creation_date时间戳 DEFAULT CURRENT_TIMESTAMP,

主键 ( visitor_id,partition_id) )

引擎=TokuDB

按列表分区(partition_id)(

(0) 引擎 = TokuDB 中的分区 p0 值,

(1) ENGINE = TokuDB 中的分区 p1 值,

(2) ENGINE = TokuDB 中的分区 p2 值,

(3) ENGINE = TokuDB 中的分区 p3 值,

(4) ENGINE = TokuDB 中的分区 p4 值,

(5) ENGINE = TokuDB 中的分区 p5 值,

(6) ENGINE = TokuDB 中的分区 p6 值,

(7) ENGINE = TokuDB 中的分区 p7 值,

(8) ENGINE = TokuDB 中的分区 p8 值,

(9) ENGINE = TokuDB 中的分区 p9 值;

中间表(10-20 百万):

创建表USER_DETAILS_INTERMEDIATE

idbigint(20) NOT NULL AUTO_INCREMENT,

visitor_id` varchar(50) DEFAULT NULL,

partition_idint(11) 默认空值,

related_text长文本,主键(id));

问题 :

当我将数据从中间表传输到主表时花费了太多时间。

我尝试了以下解决方案:

解决方案1:

替换成 USER_DETAILS(visitor_id,partition_id,json_list)

选择 visitor_id ,partition_id ,related_text

FROM USER_DETAILS_INTERMEDIATE

解决方案 2(在循环中运行以下语句:每个循环 10000 行):

替换成 USER_DETAILS(visitor_id,partition_id,json_list)

选择 visitor_id ,partition_id ,related_text

FROM USER_DETAILS_INTERMEDIATE

WHERE id 在 var_min_id 和 var_max_id 之间;

以上查询都需要时间。

有没有另一种方法来改善这个..?

0 投票
1 回答
1567 浏览

mysql - 如何在 Percona 中使用 XtraDB 和 TokuDB?

经过几次尝试,我终于在我的 Macbook 上使用 Homebrew 安装了 Percona,并通过 MySQL Workbench 成功连接到它,但是当我想创建 XtraDB 表时:

TokuDB 也有同样的错误。

我读过 Percona 支持 XtraDB 和 TokuDB 以及 InnoDB。我应该在某处激活主题吗?!

0 投票
1 回答
163 浏览

mysql - TokuDB:插入选择...情况表锁定

我正在运行 2 个并发语句:

  • 插入 tab2 select * from tab1 where ....; -- tab1 是一个分区的 tokudb 表
  • 插入 tab1 值(...);

tab1 获取表锁,第二次插入正在等待“Waiting for table level lock”

有任何想法吗?

谢谢,

0 投票
0 回答
18 浏览

mysql - 错误的子查询在少数情况下工作而在其他情况下失败?

以下两个查询完全相同,除了国家名称。在查询 1 中是“马来西亚”,在查询 2 中是“印度”。

查询本身是错误的;由于我ac.country在第一个子查询中使用“”,而我实际上需要使用“ ass.country”,但我仍然在查询 1 中得到结果,而在查询 2 中得到 NULL。

有人可以解释为什么会这样。

查询一:

查询 2:

注意:我还想补充一点,不同版本的 MySql 的输出会有所不同。

0 投票
0 回答
265 浏览

mysql - TokuDB 并发插入导致锁超时

在 TokuDB 7.5 上,我有并发批量插入,每批大约 1000 条记录。每个批量更新都在单个事务中完成。该表还包含大约 1 亿条记录。

问题是它不时抛出以下异常。

java.sql.BatchUpdateException:超过锁定等待超时;尝试重启事务

使用的事务隔离级别是Repeatable_Read,我在一篇文章中读到使用Repeatable_Read 会导致SELECT 查询的间隙锁。

但目前我们只有 INSERTS。

这个锁超时可能是由于间隙锁造成的,如果是这样,并发 INSERTS 如何受到间隙锁的影响?

架构

)

0 投票
1 回答
145 浏览

linux - MariaBD + Fedora 24 + TokuDB

似乎 TokuDB 在 Fedora 24 + MariaDB 10.1.17 中不可用。

我安装了 jemalloc 和 jemalloc-devel

我的/etc/my.cnf/tokudb.cnf

此外,SELinux 在 /etc/selinux/config 中被禁用

0 投票
1 回答
919 浏览

mysql - 如何使用 tokudb 每秒执行超过 50.000 次插入?

目前我正在测试 TokuDB,我印象非常深刻。此时,每秒插入量已达到峰值,每秒超过 50.000 次,同时运行了两个作业。平均插入速率在每秒 38.000 到 42.000 次插入之间。

我想要更高,每秒 100.000 次插入,因为我现在需要插入 12 亿计算行,在不久的将来需要插入大约 60 亿行。我想就如何实现这一点提出一些建议:-)

我目前的设置:

  1. 硬件:VPS,4GB RAM,150GB SSD,2 核:Intel Westmere E56xx/L56xx/X56xx (Nehalem-C) 2.59GHz CPU
  2. 磁盘挂载选项:默认值、noatime
  3. 操作系统:CentOS 6.8 64bit
  4. 数据库:Percona 服务器 5.7.14-8

My.cnf 设置:

TokuDB 表布局:

我知道我没有使用除主键索引之外的任何索引。这是由于密钥对插入的负面时间影响。将在插入作业结束时为每个表创建一个集群键。

附加的 MySQL 命令行选项:

不知何故,我无法在 my.cnf 中得到它。如果有人知道如何做到这一点,将不胜感激(当前 unique_checks = off 将阻止 MySQL 启动,因为 my.cnf 中有一个未知变量)。

SQL 语句以 15.000 条为一组进行分组。PHP 脚本生成 SQL 语句并通过 mysqli_multiquery 将查询发送到 MySQL 服务器:

SQL插入语句示例:

0 投票
0 回答
42 浏览

mysql - 我有一个没有 PRIMARY KEY 的表,但是有一个 UNIQUE KEY,我应该将它设置为 PRIMARY 吗?

我创建了一个新表来存储 20 Giga 的数据,我在设置索引时弄错了。事实上,我所有的索引都很好,其中一个是 3 列之间的 UNIQUE KEY。通常这个键应该是主键。

我估计了修改表格的时间成本。而且我买不起,需要一天时间。

我的问题是:将我的 UNIQUE KEY 更改为 PRIMARY 真的有用吗?

我会有更好的表现吗?

现在我必须解释一些请求使用的索引,因为引擎(TokuDB)选择了坏的,性能显着下降。

就个人而言,我真的不认为它会改变什么,除了桌子设计得很糟糕。

0 投票
0 回答
191 浏览

mysql - 使用 binlog 的 tokudb 插入速度比 innodb 慢?

在我们的基准测试中,仅 TokuDB 就击败了 InnoDB 约 25%,但当我在 InnoDB 上启用主从时,现在击败 TokuDB 约 20%

知道发生了什么

这是在 r4.8xlarge aws 机器上运行的 conf

0 投票
1 回答
130 浏览

mariadb - tokuDb 设置语句超时的时间

在带有 tokuDb 引擎的 mariadb 表中;我遇到以下错误 - 在删除语句中;虽然有后台插入负载,反之亦然。

Lock wait timeout exceeded; try restarting transaction

tokuDb 用户是否可以更新设置以确定它在语句超时之前等待多长时间?

我在 tokuDb 文档中找不到答案。maria 变量仍然是它的默认值:'lock_wait_timeout'、'31536000'——但我的超时时间在不到一年的时间里又回来了。负载测试期间出现超时;而且我没有在错误中发现时间值 - 但感觉就像几秒钟;在引发超时之前最多几分钟。

谢谢,布伦特