2013-02-25 104 views
1

我有2个巨大的MySQL表:很慢SQL连接

  • 的UserDetails:ID,名称,地址,国家
  • 用户数据:ID,产品名称,PRODUCTURL,价格

我想从userdata创建一个excel表单,其中的id是userdetails中国家/地区的西班牙用户的id,因此我们有:

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

会简单加入帮助吗?我试过但挂我的系统,因为我有userdata 50000记录和userdetails 20,000记录。

我可以在phpMyadmin中执行此操作吗?或与PHP更好?什么是最好的优化脚本使用?

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

所以你的连接查询需要很长时间才能完成?你有桌子上的索引吗?解释命令的结果是什么? – 2013-02-25 12:24:49

+0

是的,你可以在phpmyadmin中做到这一点。 – 2013-02-25 12:26:03

+0

SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name = table_name2.column_name – karto 2013-02-25 12:28:16

回答

5

会简单的加入帮助吗?

是的。

我试过但挂起我的系统,因为我有5百万记录在userdata和20,000记录在userdetails中。

5M记录并不多。如果你正确地加入了表格,并且有正确的索引,这个查询应该在很短的时间内执行。

我可以在phpMyadmin中执行此操作吗?

您绝对可以在那里执行查询。根据a commentBojan Kovacevic,你甚至可以将结果保存为CSV,以便稍后在Excel中打开它,至少在最近的版本中。

or with php be better?

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

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

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

+0

+1有很好的解释。 – 2013-02-25 12:28:30

+1

我可以在phpMyadmin中执行此操作吗? >是的,至少在3.5.1。执行查询后,您有export-> csv for excel – 2013-02-25 12:32:03