2012-03-02 121 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