簡體   English   中英

如何提高MySQL查詢時間

[英]How to improve MySQL query time

我正在使用Google SQL Cloud(MySQL 5.5 w / 4GB ram)合並兩個數據集,每個數據集大約有1M行,運行時間超過5小時。 我從Sequel Pro運行以下查詢:

create table newtable as (select * from table1 t1 left join table2 t2 using (key))

每個表都有大約20個VARCHAR列。 Key也是VARCHAR。

我在兩個表中都創建了一個鍵的索引,但這並沒有真正改變性能。 我搜索了很多,但找不到任何關於如何改善查詢時間的直接建議。 這是MySQL的預期查詢時間嗎?

編輯:每張表約250MB

我注意到的第一件事是你的KEY被設置為VARCHAR。 這可能是您遇到的性能不佳的主要原因。 這可以通過添加自動遞增的Integer PRIMARY KEY來改進。 由於'table1'中每百萬個KEY值的每個字符串與'table2'中的每個百萬個KEY值進行單獨比較,因此這會產生一個性能非常高的任務,通過每個字符中的每個字符之間的比較更是如此。的字符串。 由於使用Integers是一個簡單的價值比較值,因此它的影響要小得多。

由於實例上的物理硬件限制,Cloud SQl實例的層大小也會對性能產生很大影響。 您可以臨時更改實例的層,以在Cloud SQL用戶界面的“編輯”部分或使用Cloud SDK對其進行測試

聽起來很傻你可能會更好的運氣用mysqldump導出你的表,更改表名,然后重新導入它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM