2015-08-15 49 views
-1

對於一個特定的網站,當我跑在phpMyAdmin以下簡單查詢:業績不佳使用JOIN

SELECT a.`Nom_ID` 
FROM `aa_produse_asbis` a 
LEFT JOIN `aa_sku` s ON a.`Nom_ID` = s.`sku` 
WHERE s.`sku` IS NULL 

凡。 Nom_ID擁有約5000條記錄和s。 sku約有75.000。兩列都設置爲UNIQUE並且是varchar(255)。查詢需要120多秒,但如果我在瀏覽網站的同時,它完美的作品。此外,簡單的SELECT查詢工作正常......但不是聯接。他們過去非常快速地迴應,但我不知道這種糟糕表現的原因是什麼(沒有列索引已更改)。

還有一件事:當我嘗試進入MySQL控制檯(mysql -u root - p)時,得到:mysql: unknown variable 'asocket=/var/run/mysqld/mysqld.sock'

phpMyAdmin的性能不佳的原因是什麼?

LE:EXPLAIN語句是這樣的:

id select_type  table type possible_keys key  key_len  ref  rows Extra 
1 SIMPLE a index NULL Nom_ID 767  NULL 4771 Using index 
1 SIMPLE s index NULL sku  257  NULL 73728 Using where; Using index; Not exists 
+0

請更新您的帖子提問。 – teacurran

+0

如果您運行EXPLAIN SELECT ...,您會得到什麼...?指數是否正確使用? – Shi

+0

@Shi:使用索引/使用where;使用索引;不存在 – valicu2000

回答

0

似乎領域有不同的排序規則。現在使用相同的排序規則後,它運行良好。