iT邦幫忙

0

My SQL的Join查詢效能很慢?

  • 分享至 

  • xImage

大家好,之前大都使用SQL Server.最近一個系統初次使用了My SQL,最近在做資料報表分析時,需要對2個Table(Table1:60筆資料 ; Table2:2千筆資料) 做Join查詢,結果執行了150秒左右結果才出來; 後來把一樣的資料搬到SQL Server,1秒就跑出來了。
後來問其他朋友,說My SQL的Join查詢效率很慢。
目前很多大型網站網站都用PHP+My SQL, 難道沒有大量資料join查詢的執行時間問題?

看更多先前的討論...收起先前的討論...
外獅佬 iT邦大師 1 級 ‧ 2015-05-26 10:23:15 檢舉
相信您的join是類似這麼寫的
SELECT * FROM table1 LEFT JOIN table2 ON table1.column1=table2.column1 WHERE t1.column2=5;

改成這樣試試
SELECT * FROM table1, table2 WHERE table1.column2=5 AND table1.column1=table2.column1;
外獅佬 iT邦大師 1 級 ‧ 2015-05-26 10:23:54 檢舉
蠻有意思的比較方式,跟有趣的結論.
fillano iT邦超人 1 級 ‧ 2015-05-26 22:38:32 檢舉
我看了一下,他的意思好像不是這樣。他是說t1 left join t2,而where條件是下在t2.column2時,改成隱含的inner join會比較快。所以你的例子應該是where t2.column2=5才對。
fillano iT邦超人 1 級 ‧ 2015-05-26 22:43:54 檢舉
建議樓煮先用explain來看你下的sql的查詢計畫,看看效能問題出在哪裡,這樣會比較清楚。
roxettei提到:
目前很多大型網站網站都用PHP+My SQL, 難道沒有大量資料join查詢的執行時間問題?


講那麼多,都沒有回答到樓主的問題
我來回答
答案是:沒有
(有的話,MySQL 早就掛掉了,你也沒機會說他慢了)
下雨下雨下雨
外獅佬 iT邦大師 1 級 ‧ 2015-05-27 09:24:51 檢舉
Orz筆記拍手
外獅佬 iT邦大師 1 級 ‧ 2015-05-27 09:25:51 檢舉
iT邦幫忙MVPantijava提到:
沒有 MySQL

海綿寶的意思是...改用NoSQL冷
鐵殼心 iT邦高手 1 級 ‧ 2015-05-27 09:39:22 檢舉
wiselou提到:
改用NoSQL

讚
二年前還在中部某連鎖總部時,
公司的百萬ERP是用MySQL+JSP,
真真實實的MySQL,編碼還用big5呢(咬牙)
效能就...完全浪費了公司強大的硬體,
無時無刻當當當的精采。
(唯一的MySQL經驗,就是無限重啟)

私心推一下PostgreSQL

雖然我跟MySQL不熟
但150秒確實是個神奇數字
MySQL沒這麼不堪

查詢寫得差,會影響效能外,其它的條件也會影響,
使用的工具環境,透過什麼方式連接...等
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
fillano
iT邦超人 1 級 ‧ 2015-05-27 07:59:52
最佳解答

沒人回...我先拋磚引玉一下。

只有兩個table,資料兩千筆,只做一個join(聽您的描述應該是這樣?),150秒是個不可思議的數字XD...即使完全沒加primary key跟index,也不該這麼慢

建議您在查詢的sql前面多加一個explain,這樣會秀出你所下的sql的查詢計畫,可以看出哪裡有問題。

我要發表回答

立即登入回答