问题标签 [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.
mysql - ASC 与 DESC 之间的 TokuDB 排序时间不同
这是从 Tokutek 下载的 MariaDB + TokuDB 7.1 社区。如果这是正常行为,请接受我的无知,但我对排序结果有疑问。我在两个排序方向之间的排序时遇到了巨大的时间差异 - 升序和降序:
下面我介绍我的简化测试用例。这是表格:
在这里,我使用以下过程填充了 200 万行的表:
这是我的测试查询:
这是“解释扩展”结果,这两个查询是相同的:
请注意,这不是我正在使用的确切数据,此处包含的内容过多。我只是想创建一些测试数据来演示这个问题。我的问题是 - 为什么它会这样以及如何使降序查询更快?
mysql - 为什么 TokuDB 和 InnoDB 插入比 MyISAM 慢
我准备了以下 SQL 语句来比较 MyISAM、InnoDB 和 TokuDB 的性能行为(INSERT 执行了 100000 次):
MyISAM:
InnoDB:
托库数据库:
一开始,InnoDB 的 INSERT 性能几乎比 MyISAM 慢 50 倍,TokuDB 比 MyISAM 慢 40 倍。
然后我找出 InnoDB 上“innodb-flush-log-at-trx-commit=2”的设置,使其 INSERT 行为与 MyISAM 相似。
问题是,我应该在 TokuDB 上做什么?我敢打赌 TokuDB 的 INSERT 性能不佳也是由一些不正确的设置引起的,但我不知道原因。
- - - - - 更新 - - - - -
感谢 tmcallaghan 的评论,我已将设置修改为“tokudb_commit_sync=OFF”,现在 TokuDB 在小数据集上的插入率似乎很有意义(一旦我发现以下问题,我将在大数据集上执行它们):
然而,与 MyISAM 和 InnoDB 相比,TokuDB 的选择性能仍然是有线的,具有以下 SQL(其中 ? 被我的模拟器替换为不同的 Int ):
对于一百万个数据集,MyISAM 和 InnoDB 分别花费 10k 和 15 秒的每 10k SELECT 语句,但 TokuDB 需要大约 40 秒。
我错过了其他一些设置吗?
提前致谢!
mysql - SQL语句联接三张表
我有以下声明
返回结果如下
正如您从结果中看到的那样,有重复的行,我想消除其中的一个,如果table
仪器有更多行要返回,那么我只想要一个。
实现这一目标的正确说法是什么?
提前致谢
mysql - 如何处理 MySQL 数据库中的大量数据?
背景
我花了几天时间试图弄清楚我应该如何在 MySQL 中处理大量数据。我为该软件的新服务器选择了一些程序和技术。我可能会使用运行 nginx、Percona Server的 Ubuntu 14.04LTS,并将对我计划的 3 个表使用 TokuDB,对其余表使用InnoDB 。
但我的主要问题仍未解决。如何处理数据库中的海量数据?
数据
我对可能接收的数据的估计是每年 5 亿行。我将每4 分钟从传感器接收一次测量数据。
要求
插入速度不是很关键,但我希望能够在 1-2 秒内选择几百个测量值。所需资源的数量也是一个关键因素。
当前计划
现在我考虑将传感器数据拆分为 3 个表。
编辑:在每张桌子上:
id = PK, AI
sensor_id 将被索引
所以我会将这4 分钟的数据存储一个月。数据 1 个月大后,将从分钟表中删除。然后平均值将从分钟值计算并插入到测量小时表中。然后,当数据存在 1 年时,所有小时数据都将被删除,每日平均值将存储在 measurement_day 表中。
问题
这被认为是这样做的好方法吗?还有什么需要考虑的吗?表分区怎么样,我应该这样做吗?我应该如何执行将日期拆分为不同的表?触发器和程序?
编辑:我的想法
知道MonetDB或Infobright是否对此有用吗?
mysql - 从 TokuDB 查询创建临时表太慢
我在一台服务器上有这张表:
和同一张表,但在另一个类似的服务器中使用 MyISAM 引擎。
当我执行此查询时:
该表有 1.2 亿行。使用 TokuDB 的服务器在 3 小时内执行查询……使用 MyISAM 的服务器在 22 分钟内执行。
使用 TokuDB 的查询显示“查询大约 38230000 行,获取大约 303929 行,加载数据仍然存在”状态。
为什么 TokuDB 查询持续时间这么长?TokuDB 是一个非常好的引擎,但我不知道这个查询我做错了什么
服务器使用的是 MariaDB 5.5.38 服务器
mysql - mysql_query() keeps running after php exits
I've noticed that if I execute a long running mysql query with php using mysql_query() (I know I'm not supposed to use that) and then the php process gets killed then the query continues to run on the mysql server. This is not a persistent connection. The connection is made with:
For example, let's say I have a 1 billion row table and a php process does this for some reason:
And then it times out (say because I'm running php-fpm with request_terminate_timeout=5), so it kills the process after 5 seconds to make sure it doesn't hog things.
Eventhough the process is killed, the query still runs on mysql even far after wait_timeout.
Is there anyway to make sure that if the php process exits for whatever reason it also kills any running queries that it made?
I'm using tokudb 5.5.38-tokudb-7.1.7-e which is mysql 5.5.38
database - Tokudb 和分形树索引
我对在我的表格中使用分形树索引有疑问。我创建了指定 TokuDB 引擎的表
文档说:“TokuDB 使用一种称为分形树的特殊数据结构,它针对不完全适合内存的数据进行了优化。”
但是如果我执行这个查询
为我的表检索的所有索引都有 index_type = BTREE
所以…………这对吗?
mysql - GROUP BY WHERE 范围和没有临时的 const ref
一个非常基本的表格,其中包含利用 TokuDB 存储引擎跨多个交易所的工具报价:
每当我在所有交易所查询最佳价格时,它总是使用一个临时表。exchange
索引中的and的存在price
似乎只产生一个索引扫描,相当于(ticker, timestamp)
TokuDB 中的聚集键。
是否可以定义不使用临时表的配置?timestamp
这只有在删除文章时才可能出现:
最佳价格查询的示例输出:
瓶颈(3ms)正在处理时间范围内的每一行:
时间范围包含 2316 行,按交换细分:
我已经尝试过疯狂并添加了覆盖索引的所有排列,而 MariaDB 找不到更好的键。我应该查看其他数据库吗?
时间范围和股票代码的示例数据集:http: //pastebin.com/b5RcTXA
php - 重复条目 Mysql TokuDB 与许多客户端
我有一个奇怪的情况。假设我在 php 中有一个非常简单的函数(我使用了 Yii,但问题很普遍),它在事务语句中被调用:
也就是说,如果我通过盯着许多进程来运行包含此函数的脚本,我将在数据库中有重复的值。例如,如果我有 $someKey='pippo',并且我通过启动 2 个进程来运行脚本,我将有两个(或更多)列“someCol”=“newOne”的记录。这是随机发生的,并非总是如此。代码错了吗?我应该以 KEY 的形式在 DB 中设置一些约束吗?我还阅读了这篇关于向 TokuDB 添加 UNIQUE 索引的帖子,其中说 UNIQUE KEY “杀死”了写入性能......
mysql - Mysql 不返回数据但有数据
今天很奇怪的问题。像基本数学一样简单的查询:
但是这个让我抓狂:
也就是说:尽管数据就在那里,但选择不会返回任何数据。这是与集群键相关的问题吗?我的桌子: