zorba_buddha
@zorba_buddha
IT

Медленный UPDATE в MySQL

Есть запрос:
UPDATE
settings
SET
vals = ABS(vals) + 1
WHERE
name = 'somename'

где name — varchar(30) latin1_bin, vals — int(10).
Таблица InnoDB.
Хостинг 1Gb VDS-1024 CentOS.
В таблице до 30 записей.
Запрос выполняется от 0,003 до 10 секунд.
С админом переломали уже себе все ноги, испробовали всевозможные тесты, рекомендующие конфиги с лучшими настройками и т.п.
Вопрос — куда смотреть?
На локальных машинах таких тормозов не бывает никогда.
  • Вопрос задан
  • 3238 просмотров
Пригласить эксперта
Ответы на вопрос 6
Q2W
@Q2W
1. Мускл-сервер загружен? На пустом мускл-сервере история повторяется?
Может у мускла кончается кеш, он достаём ваши 30 записей с диска, который и так перегружен.
2. Триггеры, вызывающиеся по данному запросу, что-то делают?
Ответ написан
tampere
@tampere
Побеседуйте с хостером, возможно, у них на хост-системе что-то с кэшем.
Ответ написан
@pwlnw
Вполне типично для VPS.
Вместо того чтобы тратить время на случайные флуктуации, собирайте статистику за день и ищите наиболее тормозящие запросы программой mysqlsla.

Конечно, 10 секунд это многовато, но у хостеров свое мнение.
Ответ написан
@BasilioCat
На 1gb имхо можно на VPS использовать внешний MySQL сервер хостинга. Работает он быстро, рекомендую использовать именно его.
Ответ написан
zizop
@zizop
На 1gb имхо можно на VPS использовать внешний MySQL сервер хостинга. Работает он быстро, рекомендую использовать именно его.
Пробовал, ситуация иногда также повторяется.

А может тогда дело не в MySQL-сервере. Вы писали, что на локальной машине проблем нет.
Вы выполняете запросы из консоли MySQL или используете какую-либо бибилиотеку (libmysql, pdo)?
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
На до 30 записях это тормозить не может, ну никак.
Пришлите таблицу и запрос в личку проверю на своем хостинге.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы