我有一個包含大約1500萬行,所有varchar數據的大表。我跑了自連接上查詢具有3自我表連接,這樣的事情:任何方式來知道有多少行讀取MySQL中的select語句?
SELECT sj1.uid FROM tbl sj1
JOIN tbl sj2 ON sj1.uid = sj2.uid
JOIN tbl sj3 ON sj1.uid = sj3.uid
WHERE sj1.product_code = 'tb'
AND sj2.product_code = 'im'
AND sj3.product_code = 'mg'
現在它已經2個多小時,當我檢查show full processlist
我得到的狀態發送數據,沒有別的。我想知道是否有任何方法可以知道此查詢處理了多少行或任何其他相關狀態。我甚至無法殺死這個查詢,懷疑它可能已接近尾聲,如果被打斷,將會造成資源的大量浪費。任何幫助?
這是什麼EXPLAIN
解釋我:
+----+-------------+-------+------+-------------------+-------------------+---------+----------------------------------------+----------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+-------------------+-------------------+---------+----------------------------------------+----------+-------------+
| 1 | SIMPLE | a | ALL | ix_unique_user_id | NULL | NULL | NULL | 14251264 | Using where |
| 1 | SIMPLE | b | ref | ix_unique_user_id | ix_unique_user_id | 103 | ph_usertrack_analysis.a.unique_user_id | 2 | Using where |
| 1 | SIMPLE | c | ref | ix_unique_user_id | ix_unique_user_id | 103 | ph_usertrack_analysis.a.unique_user_id | 2 | Using where |
+----+-------------+-------+------+-------------------+-------------------+---------+----------------------------------------+----------+-------------+
於是就unique_user_id指數被用來
您最近爲表格編制過索引嗎? – JMK 2012-07-09 14:52:07
記錄緩慢的查詢並使用EXPLAIN來幫助優化它們。 EXPLAIN也會給出行數。 – jeremyharris 2012-07-09 14:53:20
據我所知,沒有辦法知道已經處理了多少行。 – 2012-07-09 14:57:32