簡體   English   中英

mysql 查詢在 windows 上太慢,但在 linux 上查詢速度非常快

[英]mysql query is too slow on windows but very fast on linux

我有一個 MySQL 查詢,它在 linux 服務器上運行非常快速和正常(不到 1 秒)。 但是當我嘗試在我的本地 windows 個人電腦或我的 windows 遠程服務器上運行此查詢時,它至少需要 40 秒才能得到結果。

Linux:

Linux 結果

Windows:

窗口結果

這是我的查詢:

    SELECT SQL_CALC_FOUND_ROWS listings.id, GROUP_CONCAT(DISTINCT images.imagelink) as images, title, GROUP_CONCAT(DISTINCT tags.tag) as tags, stores.name
FROM listings LEFT JOIN bayiler ON bayiler.id = listings.used LEFT JOIN stores ON listings.owner = stores.id LEFT JOIN images ON listings.id = images.lid LEFT JOIN tags ON listings.id = tags.lid 

 
WHERE listings.id > 0
GROUP BY images.lid 

 
ORDER BY listings.id ASC
LIMIT 0, 10

我試圖更改 my.ini 上的一些變量,但沒有任何改變。

innodb-buffer-pool-size=1G
query-cache-limit=20M
query-cache-size=128M
query-cache-type=1
read-buffer-size=32M
tmp-table-size=1504M
max-heap-table-size=1504M
thread-cache-size=30
open-files-limit=50000

問題是:為什么這個查詢在 windows 上很慢,但在 linux 上卻沒有? 我的主要問題是我必須在 windows 上工作,所以我怎樣才能使這個查詢像 linux 一樣更快?

兩台 windows 機器的規格也比 linux 服務器好得多。

盡量避免使用過多的left join ,尤其是你的MySQL數據庫的每張表都有大量的記錄,會大大降低查詢效率。

因此,您的問題顯然是由於 sql 的查詢方式,而不是您的 sql 查詢運行的操作系統類型。 我建議您應該執行幾個單獨的單表查詢並合並結果。

暫無
暫無

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

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