Оптимизировать простой запрос на обновление 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)

Пожалуйста, предложите что-нибудь.

2 ответа

Добавление большего количества индексов сделает вставку медленнее, а не быстрее, но сделает выбор быстрее.

Можете ли вы перечислить полное определение таблицы?

Также возможно, что макет базы данных не очень эффективен для обновления. Таблица вообще выглядит довольно большой, так что, возможно, лучше разбить ее на разные таблицы, чтобы ваше обновление могло повлиять на меньшее количество данных...

Вы также можете выбрать дизайн БД, который наилучшим образом соответствует вашим требованиям, поэтому, если у вас много обновлений, выберите BCNF или 4-й NF для макета. Если у вас больше чтений, чем выбирайте в лучшем случае 3NF, который должен быть в основном стандартной нормальной формой БД.

Все вышеперечисленное BCNF имеет недостаток, потому что вы теряете зависимости FD, так что вы получите больше избыточностей...

Вот краткое введение в NF: http://en.wikipedia.org/wiki/Database_normalization

Другие вопросы по тегам