小编use*_*736的帖子

我该如何优化这个MySQL查询?

有人可以解释为什么子查询添加组使得此查询需要这么长时间(30秒):

SELECT *
FROM aggregate_songlist AS a
INNER JOIN musical_works AS m 
ON a.musical_work_id = m.id
WHERE m.genre='rock' AND m.id NOT IN 
(SELECT sources.musical_work_id FROM sources GROUP BY sources.musical_work_id HAVING COUNT(sources.musical_work_id) > 8)
Run Code Online (Sandbox Code Playgroud)

如果我删除'group by'(并增加子查询的结果),则需要0.07秒:

SELECT *
FROM aggregate_songlist AS a
INNER JOIN musical_works AS m 
ON a.musical_work_id = m.id
WHERE m.genre='rock' AND m.id NOT IN 
(SELECT sources.musical_work_id FROM sources)
Run Code Online (Sandbox Code Playgroud)

子查询中没有外部引用,因此它只应执行一次,对吧?自己执行:

SELECT sources.musical_work_id FROM sources GROUP BY sources.musical_work_id HAVING COUNT(sources.musical_work_id) > 8
Run Code Online (Sandbox Code Playgroud)

只需0.01秒.

有什么解释吗?有关如何改变它的任何建议?

mysql sql

4
推荐指数
1
解决办法
142
查看次数

使用pytables选择列子集的最优雅方法是什么?

我在pytables中有一个包含300多列的数据集,我希望能够轻松选择不同的子集.似乎没有一个非常优雅的解决方案,或者有什么我想念的?

我也很高兴有一种方法可以创建另一个表,它简单地对原始表中的选择列进行别名,这样我就可以拥有我的主表,然后是我的子集teables.有没有办法做到这一点?

python hdf5 pytables

2
推荐指数
1
解决办法
1527
查看次数

标签 统计

hdf5 ×1

mysql ×1

pytables ×1

python ×1

sql ×1