2012-07-05 135 views
17

我試圖回答以下問題爲我的大學修訂的一部分:MySQL的EXPLAIN UPDATE

在表的至少一個屬性在 ,「僱員」數據庫中創建一個索引,其中使用到 的MySQL'EXPLAIN'工具清楚地顯示了所述索引的創建的益處(在術語或複述中)和否定(在更新術語中爲 )。

在第一部分我已經創建的員工表上的索引和使用下面的查詢之前和索引後,證明它是從檢索角度來看是有益的:

EXPLAIN SELECT * FROM employees WHERE birth_date = '1953-09-02'; 

該指數曾將訪問行數從300,000減少到僅爲63的效果。

現在,我很難說如何做第二部分。我預計能夠使用EXPLAIN命令與更新,但它不起作用。

UPDATE查詢我試圖分析如下:

UPDATE employee SET first_name = 'first_name' WHERE birth_date = '1953-09-02'; 

這是一個合適的查詢來回答這個問題,我如何去分析。

許多在此先感謝。

回答

32

EXPLAIN UPDATE存在於MySQL 5.6而不是MySQL 5.5通過比較MySQL的文檔。你在MySQL 5.6服務器上嘗試過嗎?

+0

我沒有移動到5.6的選項。如果5.5中沒有解釋,爲什麼MySQL 5.5更新速度緩慢,推薦的方法是什麼? – 2015-08-21 19:57:11

+3

解釋計劃適用於SELECT語句中的5.5。如果你確實想知道爲什麼更新很慢,假設它是更新中的where子句很慢,那麼嘗試在select語句中使用where子句給你一些提示做一個解釋計劃。此外,您可以克隆數據庫並升級到5.6以進行測試。 – 2015-08-22 06:02:16

+0

你也可以參考這個問題的評論。 http://dba.stackexchange.com/questions/49788/query-execution-plan-for-mysql# – 2015-08-22 06:09:06