SQL连接速度非常慢


Very slow SQL join

我有两个巨大的mysql表:

  • userdetails:id、名称、地址、国家/地区
  • userdata:id,productname,producturl,price

我想从userdata创建一个excel表,其中id是userdetails中用户的id,其中country是西班牙,这样我们就有了:

id, name, address, country, productname, producturl....

简单的加入会有帮助吗?我尝试过,但挂起了我的系统,因为我在用户数据中有500万条记录,在用户详细信息中有20000条记录。

我可以在phpMyadmin中做到这一点吗?还是用php更好?要使用的最佳优化脚本是什么?

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

简单的加入会有帮助吗?

是的。

我尝试过,但挂起了我的系统,因为我在用户数据中有500万条记录,在用户详细信息中有20000条记录。

500万张唱片并不多。如果您正确地联接了表,并且有正确的索引,那么这个查询应该在很短的时间内执行。

我可以在phpMyadmin中做到这一点吗?

您肯定可以在那里执行查询。根据Bojan Kovacevic的评论,你甚至可以将结果保存为CSV,这样你以后就可以在Excel中打开它,至少在最近的版本中是这样。

还是用php更好?

仅当您要求通过HTTP返回结果时。

要使用的最佳优化脚本是什么?

您可以使用命令行mysql客户端和SELECT … INTO OUTFILE … MySQL命令将结果保存为CSV文件,然后在Excel中打开。