2011-05-27 44 views
0

我安裝了MySQL調諧器,這是該報告的結果是:MySQL的:優化指標

  • 啓用慢查詢日誌來解決不良查詢
  • 調整你的連接查詢總是利用指標

所以,我啓用了慢查詢日誌,並報道了這些類型的查詢:

SELECT u.PIN,u.name,u.lastname,u.id_country,t1.id_user_list,COUNT(t2.id_user_list) AS q1 FROM聯繫AS t1,聯繫AS t2,用戶AS u WHERE t1.id_user = N AND t2.id_user = t1.id_user_list AND u.id_user = t1.id_user_list GROUP BY t1.id_user_list ORDER BY名字,姓氏

而且......

SELECT * FROM用戶WHERE城市LIKE'S' AND gender = N AND flg_pic = N AND flg_hidden = N AND flg_ban = N AND id_user = N ORDER BY id_user DESC LIMIT N,N-

我只需要對我的表,這是優化一些幫助!

  1. 接觸
    • id_contact( int/primary index)
    • id_user(int/index)
    • id_user_list(int/index)
  2. 用戶
    • id_user(INT /主索引)
    • 名稱(VARCHAR)
    • 姓氏(VARCHAR)
    • PIN(VARCHAR)
    • id_country(INT)
    • city(varchar)
    • 性別(1或2)
    • flg_pic(1或0)
    • flg_hidden(1或0)
    • flg_ban(1或0)

我應該索引了在查詢中使用的所有VARCHAR處理(WHERE和ORDER )以及?謝謝你的幫助。

回答

1

您應該運行解釋分析以更好地瞭解查詢中最昂貴的部分,並對這些字段進行索引或優化。

如:

explain analyze SELECT * FROM user WHERE city LIKE 'S' AND gender = N AND flg_pic = N AND flg_hidden = N AND flg_ban = N AND id_user != N ORDER BY id_user DESC LIMIT N,N 

,你應該是那些運行最頻繁的查詢速度慢,最慢

+0

這是否命令甚至還存在優先級?它會拋出一個錯誤 – andufo 2011-05-28 03:50:17

+1

我想你只想'EXPLAIN',而不是'EXPLAIN ANALYSE'。 – 2011-05-28 04:37:19