2013-02-25 113 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