2012-03-02 164 views
0

簡單的更新查詢花費了太多時間。優化簡單的mysql更新查詢

我需要優化此查詢。沒有加入,它不應該花很多時間。

簡單的更新查詢低於:

UPDATE need 
    SET `column7` = "in ABC and in", # type: text 
    `column9` = "in Abc and in ", # type: text 
    `column15` = "", #type: text 
    `column32` = "0" #type: tinyint(1) 
WHERE id = "36851" 


    Field Type Collation 
-------------------------- ------------------- --------------- 
id bigint(20) unsigned (NULL) 
column01 varchar(320) utf8_unicode_ci 
column02 varchar(1024) utf8_unicode_ci 
column03 longblob (NULL) 
. 
. 
. 
. 
column32 tinyint(1) (NULL) 
column33 tinyint(3) unsigned (NULL) 

請提出好的建議。

回答

0

增加更多的指標將插入慢不是更快,但它會使選擇更快。

你能列出你的全表定義嗎?

+0

我沒有看到任何明顯您的表格定義中存在問題。你的桌子上有多少行?什麼是mysql版本? – 2012-03-02 07:59:43

0

另外一個選擇是數據庫佈局不是非常有效的更新。 這個表格看起來相當大,所以最好將它分成不同的表格,這樣你的更新可能會影響更少的數據...

你也可以選擇最適合你需求的數據庫設計,所以如果你有很多更新,請選擇BCNF或4th NF進行佈局。如果讀取的數據多於最佳情況下的3NF,這應該主要是數據庫的標準正常格式。

上述所有BCNF有一個缺點,監守你正在失去FD的依賴,所以你會得到更多人被裁員......

這裏簡要介紹NF的: http://en.wikipedia.org/wiki/Database_normalization#Normal_forms