繁体   English   中英

mysql查询这么慢

[英]mysql queries so slow

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

index on:email,table3_id(我在其上搜索)

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

SELECT table3_id, email, FROM table1
LIMIT x

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM