【发布时间】:2010-03-22 03:45:54
【问题描述】:
我需要在任何给定时间在包含大约 100 万条记录的表上使用 InnoDB 存储引擎。它以非常快的速度将记录插入其中,然后在几天甚至一周内删除这些记录。 ping 表大约有一百万行,而 website 表只有大约 10,000 行。
我的声明是这样的:
select url
from website ws, ping pi
where ws.idproxy = pi.idproxy and pi.entrytime > curdate() - 3 and contentping+tcpping is not null
group by url
having sum(contentping+tcpping)/(count(*)-count(errortype)) < 500 and count(*) > 3 and
count(errortype)/count(*) < .15
order by sum(contentping+tcpping)/(count(*)-count(errortype)) asc;
我在入口时间添加了一个索引,但没有骰子。谁能告诉我我应该考虑研究这个查询的基本优化。结果集只有 200 行,所以我不会在那里被杀。
【问题讨论】:
-
请编辑描述以显示正在查询的关系的架构(
CREATE TABLE语句)。 -
请编辑描述以显示 RDBMS 的查询解释器对此查询的输出。
-
当我回到我的家用电脑时,我会这样做。现在我可以告诉这一点:两个表中的每一个上只有一个主键,并且在这两种情况下它都是一个 INT。唯一的索引在这些主键上。我想知道是否应该以某种方式创建更多索引,因为我创建的简单索引没有做任何事情。
标签: sql mysql optimization