2012-03-02 3 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? –

0

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

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

Все выше НФБК имеет недостаток, потому что вы освобождаете FD зависимостей, так что вы собираетесь получить больше увольнений ...

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

Смежные вопросы