0

几天来,我试图弄清楚为什么查询如此缓慢。我有一张大表,不是很大的约 70,000 条记录,我只在 2 个字段上进行搜索,我设置了索引,查询需要几分钟。

这些只是简单的查询,没有任何扩展。我尝试了解释选择 - 但没有什么不寻常的。它没有任何区别,或者我直接在网站或服务器上进行搜索。

知道会出什么问题吗?

查询是这样的

SELECT table3_id, email from table1 GROUP BY ID; 

查询由用户选择扩展......但这是主要搜索 - 这很慢,当扩展搜索更糟糕时。时间从 34-400 秒不等。

表如下所示:

Table1 (
  id int(11) NOT NULL AUTO_INCREMENT,
  other_id varchar(128) NOT NULL,
  user_id int(11) NOT NULL,
  flag_deleted tinyint(1) NOT NULL DEFAULT '0',
  email varchar(255) NOT NULL,
  datetime datetime NOT NULL,
  table3_id int(11) NOT NULL,
  text_header varchar(1024) NOT NULL,
  text_body text NOT NULL
  PRIMARY KEY (`id`)
) ENGINE=InnoDB ;

索引:电子邮件,table3_id(我在其中进行了搜索)

4

2 回答 2

2

假设您实际上想要所有约 70,000 个 ID/电子邮件,没有比这里更好的方法了。您可以查询更小的信息子集吗?如果您不是一次全部使用它们,您可以尝试:

SELECT table3_id, email, FROM table1
LIMIT x

其中 x 是您需要的任何数量的条目。

于 2013-03-23T20:20:51.550 回答
0

我找到了解决方案……该表包含太多未使用的数据。将这些数据移动到另一个表后,一切都变得更快了。(我知道这不应该是原因,但它起作用了)

使这项工作更好的其他可能原因是将 mysql 从 5.1 升级到 5.5。

我在桌子上做了更多的标准化,我们可以更快地得到结果。(尽快我得到了这样做的许可)。

于 2013-04-02T10:53:21.047 回答