mysql查询这么慢

时间:2013-03-23 20:14:32

标签: mysql

我试图找出查询为何如此缓慢的几天。 我有大表,不是大约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(我进行了搜索)

2 个答案:

答案 0 :(得分:2)

假设你真的想要所有~70,000个ids /电子邮件,那么没有比你在这里做的更好的方法了。您可以查询的信息子集是否较小?如果你不是一次性使用它们,你可以尝试:

SELECT table3_id, email, FROM table1
LIMIT x

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

答案 1 :(得分:0)

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

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

我在桌面上进行了更多规范化,我们可以更快地获得结果。 (尽快我得到了许可)。