Медленный MySQL UPDATE запрос

0

У меня есть таблица mysql, содержащая 400 000 строк

всякий раз, когда я запускаю PHP script для обновления одной строки, для этого требуется около 3-4 секунд.

Как оптимизировать запрос на обновление?

UPDATE `weakvocab` SET `times` = times+1, `wrong` = wrong+1, `mtime` = 1284369979 WHERE `owner` = 'owner_name' AND `vocID` = 'ID_number' AND `type` = 'type_name';

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

Спасибо,

Теги:
query-optimization

2 ответа

1
Лучший ответ

Являются ли столбцы в вашем индексе WHERE индексированными? Измените UPDATE на SELECT, чтобы увидеть, как Mysql выполняет его:

EXPLAIN SELECT * FROM `weakvocab` WHERE `owner` = 'owner_name' AND `vocID` = 'ID_number' AND `type` = 'type_name';

и вставьте результат здесь

  • 0
    Здравствуйте, нет, я не использую
  • 0
    выбор без объяснения быстро около 0,2 с
Показать ещё 3 комментария
0

Вы можете попробовать добавить индекс на (owner_name, vocID, type), чтобы можно было быстрее найти запись для обновления.

  • 0
    Как я могу добавить индекс, повлияет ли это на существующие данные?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню