2016-01-22 15 views
3

我正在做選擇從MySql服務器上運行在Azure實例與inno_db設置爲2GB的3個連接表。我曾經有14GB的ram和2core服務器,我只是加倍ram和內核希望這將導致我的選擇積極,但它沒有發生。Azure虛擬機上的自託管MySQL服務器掛在選擇數據庫是〜100MB

我正在做的3個表格中選擇的是90mb,15mb和3mb。 我相信在我的要求中,我不會做任何瘋狂的事情,但是我選擇了幾個布爾值,但是我看到這個選擇是認爲服務器非常糟糕,我無法獲取我的數據。我確實看到流量通過Mysql工作臺增加到500MB/s,但無法弄清楚如何處理這個問題。

有什麼我可以做,讓我的SQL查詢工作?我不介意等5分鐘才能得到這些數據,但我需要弄清楚如何得到它。

====================更新========================= ======
我能夠通過克隆90 MB的表格並使用過濾的原始表格填充它來完成它。它結束了大約15mb,然後我只選擇了所有3個表格,然後通過ID。所以現在請求在1/10秒內完成。

我最初做錯了什麼?我覺得有一種方法可以增加某些數據包的大小以使這些查詢起作用?我有什麼建議谷歌?

僅供參考,我的選擇查詢看上去像這樣

SELECT 
text_field1, 
text_field2, 
text_field3 ,.. 
text_field12 
FROM 
db.major_links,db.businesses, db.emails 
where bool1=1 
and bool2=1 
and text_field is not null or text_field!='' 
and db.businesses.major_id=major_links.id 
and db.businesses.id=emails.biz_id; 

所以bool1,2和文本框即時過濾是從90MB表

回答

0

的filds我知道這可能是有點晚,但我有一些建議。

首先看看my.ini文件中的max_allowed_pa​​cket。這通常在Windows中找到: C:\ ProgramData \ MySQL \ MySQL服務器5.6

這控制着數據包的大小,並且如果設置不正確,通常會在大型查詢中導致錯誤。我有我的設置爲100M

下面是一些文檔,爲您提供:

Official documentation

另外我有慢查詢時在WHERE語句有很多的項目,在這裏你有幾個。確保你的where子句中的值特別是與連接有關的索引和複合索引。

相關問題