- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在运行一个相当复杂的 SQL 语句,从一个包含原始数据的大表(3800 万行)创建一个汇总表。 (我正在尝试将当前、本季低价、本季高价、本周/月/季节价格已上涨 1 分的百分比放入缓存
表中,以便稍后查询。)
INSERT INTO cache (`time`, name, price, low, high, week, month, season)
SELECT
MAX(`time`) AS `time`,
name,
MIN(CASE WHEN `time` = 1498511444 THEN price ELSE 999999 END) AS price,
MIN(price) AS low,
MAX(price) AS high,
SUM(CASE WHEN `time` > 1497906644 AND price = 1 THEN 1 ELSE 0 END) / SUM(CASE WHEN `time` > 1497906644 THEN 1 ELSE 0 END) AS week,
SUM(CASE WHEN `time` > 1480367444 AND price = 1 THEN 1 ELSE 0 END) / SUM(CASE WHEN `time` > 1480367444 THEN 1 ELSE 0 END) AS month,
SUM(CASE WHEN `time` > 1493362800 AND price = 1 THEN 1 ELSE 0 END) / SUM(CASE WHEN `time` > 1493362800 THEN 1 ELSE 0 END) AS season
FROM
(SELECT
`time`,
name,
MIN(price) AS price
FROM price
WHERE `time` > 1493362800
GROUP BY `time`, name) AS tmp
GROUP BY name
在 Price.time 列上添加索引后,我设法将本地时间降低到 0.6 秒(之前需要 30 秒)。在产品上(具有相同的索引),需要很长时间(30秒以上),然后失败并显示错误代码:28 - 设备上没有剩余空间。如果我在 df 运行时观看它,我会看到可用空间以大约 3MB/s 的速度从 9.9G 慢慢减少到 9.6G。然后几分钟后,可用空间突然开始下降 500MB/s,直到没有剩余空间并且查询失败。在本地,可用空间中似乎没有任何 Blob ,尽管我猜它可能太快了,以至于我的 df
在 while 循环中看不到它。
如果我尝试首先创建一个包含子查询结果的表,我也会遇到占用磁盘的行为:
INSERT INTO initial_cache (`time`, name, price)
SELECT
`time`,
name,
MIN(price) AS price
FROM price
WHERE `time` > 1493337600
GROUP BY `time`, name
你知道为什么我的查询需要这么多空间来运行吗?为什么它在产品上的表现会如此不同?
谢谢!
最佳答案
子查询在内存不足时往往会使用大量临时空间。然而,有一部分有点多余:初始子查询后的时间检查:重写给出(其中 SUM(1) 很奇怪):
INSERT INTO cache (`time`, name, price, low, high, week, month, season)
SELECT
MAX(`time`) AS `time`,
name,
MIN(price) AS price,
MIN(price) AS low,
MAX(price) AS high,
SUM(CASE WHEN price = 1 THEN 1 ELSE 0 END) / SUM(1) AS week,
SUM(CASE WHEN price = 1 THEN 1 ELSE 0 END) / SUM(1) AS month,
SUM(CASE WHEN price = 1 THEN 1 ELSE 0 END) / SUM(1) AS season
FROM
(SELECT
`time`,
name,
MIN(price) AS price
FROM price
WHERE `time` > 1498442022
GROUP BY `time`, name) AS tmp
GROUP BY name;
这可能相当于:
INSERT INTO cache (`time`, name, price, low, high, week, month, season)
SELECT
MAX(`time`) AS `time`,
name,
MIN(price) AS price,
MIN(price) AS low,
MAX(price) AS high,
SUM(CASE WHEN price = 1 THEN 1 ELSE 0 END) / SUM(1) AS week,
SUM(CASE WHEN price = 1 THEN 1 ELSE 0 END) / SUM(1) AS month,
SUM(CASE WHEN price = 1 THEN 1 ELSE 0 END) / SUM(1) AS season
FROM price
WHERE `time` > 1498442022
GROUP BY name;
但是,由于外部查询的重写看起来很奇怪,我怀疑这是否是您正在寻找的结果:提供数据和预期结果以获得更好的答案。
关于MySQL 查询在/tmp 中使用了 10G 空间并因 'Errcode: 28 - No space left on device' 而终止,但在本地运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44765799/
我正在使用 springboot 2.1.4 和 EmbeddedTomcat。当我运行服务器时,会创建/tmp/jar_cache###.tmp 。我该如何处理 jar_cache###.tmp?
我有一个简单的上传表单,这里是开始和结束标签: 我在提交时收到 500 内部服务器错误。并且 apache 日志显示以下条目(主机名和 ip 已编辑): [Tue Feb 14 00:08:32
尽管用户是 sudo 用户,但远程主机在运行 Ansible playbook 时仍会引发错误。 "/usr/bin/python: can't open file '/home/ludd/.ansi
在运行 sqoop 命令时,它会运行 java 代码并将它们存储到 /tmp 中。目录所以,它给了我以下错误: (Could not create temporary directory: /tmp/
当我尝试将本地存储库推送到服务器时,我的 Ubuntu 服务器突然出现此错误。谁能帮我解决这个问题。 最佳答案 那是服务器端的 python 说“嘿!这 4 个目录都不是我可以写临时文件的地方!”。检
SQL 2005 中两种类型的临时表@tmp 与#tmp 之间有什么区别? 他们的其他类型是我不知道的吗? 谢谢 最佳答案 #tmp是一个临时表,主要表现得像一个真正的表。它可以有索引,可以有统计数据
我在 Hadoop 文档中看到 1 hadoop.tmp.dir 的默认值是 /tmp/hadoop-${user.name} 但如果我这样设置,当机器重新启动时,我是否丢失数据? 我的意思是,也许我
我发现有关 php 和 /tmp 文件夹的奇怪行为。 Php 在使用 /tmp 时使用另一个文件夹。 PHP 5.6.7,nginx,php-fpm。 我以两种方式执行相同的脚本:通过浏览器和通过 s
当我在hadoop集群上运行java map reduce代码时,出现以下错误消息: -sh-3.2$ hadoop jar PearsonSim1.jar PearsonSim.PearsonDri
我正在尝试编译 Tizen 源代码。编译工具使用rpm构建环境。在编译特定包时,我遇到 rpm 构建问题“Bad exit status from/var/tmp/rpm-tmp.b1DgAt (%b
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我和我的一位同事就此进行了讨论。并且想知道更多人对哪个“可以”更优的看法?PS:如果代码只是一个 hello world 程序,-O3 会产生相同的代码,但我们讨论的是此代码段位于大型项目中间的场景。
我在提交时遇到以下错误, 无法打开 .svn\tmp\tempfile.tmp:访问被拒绝。 当我开始在谷歌搜索这个错误时,我开始知道可能是因为 McAfee 杀毒软件,这个错误可能会出现。如果 Mc
我正在开发一个网站,该网站要求我创建上传 .csv 文件的函数。上传文件时,提示格式错误,并显示以下消息: C:\xampp\tmp\php9F4F.tmp 我应该如何解决该错误,然后将 csv 文件
我正在尝试构建一个 rpm 文件来安装 ATM 驱动程序。构建 rpm 文件的最后一步是使用此 rpmbuild 命令 [anjanu@matrix rpmbuild]$ rpmbuild -bb S
我有一个java spring boot应用程序,它实现了多线程,其中一个线程订阅ZMQ,四个并行线程根据一些预定的时间间隔对接收到的数据执行一些处理。当 jar 在 Linux VM 上运行并使用命
我有一个奇怪的 RPM 问题,我是新手所以请多多包涵...我创建了规范文件,当我运行构建时出现错误: /var/tmp/rpm-tmp.ajKra4: 第 36 行:cd: hero-01: 没有那个
在过去的几年里,我一直在使用 Cruise Control .NET 持续集成服务器,它运行良好。最近,我在启动 WebDashboard 后开始收到此错误。有人对如何解决此错误有任何建议吗?我是不是
情况是此应用程序在/tmp 中需要更多空间。目前我的 tmp 文件夹在 root 的分区中。临时创建指向不同分区的 tmp 符号链接(symbolic link)以利用更大的空间是否安全? 最佳答案
ls -1/tmp/dir/返回: file1.txt file2.txt ls -1/tmp/dir/* 返回: /tmp/dir/file1.txt /tmp/dir/file2.txt 为什么会
我是一名优秀的程序员,十分优秀!