优化简单的mysql更新查询

时间:2012-03-02 07:02:40

标签: mysql sql performance sql-update

简单的更新查询花费了太多时间。

我需要优化此查询。没有加入,不应该花那么多时间。

简单的更新查询如下:

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)

请提出建议。

2 个答案:

答案 0 :(得分:0)

添加更多索引会使插入变慢而不会更快,但会使选择更快。

你能列出你的全表定义吗?

答案 1 :(得分:0)

另外一个选择是数据库布局对更新不是很有效。 表格看起来很大,所以最好把它拆分成不同的表格,这样你的更新可能会影响更少的数据......

您也可以选择最符合您要求的数据库设计,因此如果您有大量更新,请选择BCNF或第4个NF进行布局。如果你有更多的读数而不是最好的情况下选择3NF,这应该主要是DB的标准正常形式。

所有上面的BCNF都有一个缺点,因为你正在失去FD依赖关系,所以你会得到更多的裁员......

这里是NF的简短介绍: http://en.wikipedia.org/wiki/Database_normalization#Normal_forms