Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UPDATE large table WHERE id in (1,2,3) / 4 сообщений из 4, страница 1 из 1
20.11.2016, 21:46
    #39350642
dart_sitius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE large table WHERE id in (1,2,3)
У меня есть большая MyIsam таблица на 40млн строк. id - это primary key. Мне нужно делать что-то вроде
Код: sql
1.
UPDATE `table` SET `data`=`data`+1 WHERE `id` IN (1, 10, 100, 5, 3, 6...)


За раз в множество ID включается где-то 150к чисел. И на 1 такой запрос уходит примерно 70 секунд. Но мне нужно обновлять минимум миллион строк в минуту. Подскажите куда копать. Я думал операции по primary key должны выполняться быстро
...
Рейтинг: 0 / 0
20.11.2016, 22:07
    #39350648
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE large table WHERE id in (1,2,3)
dart_sitius,

И все эти 150к чисел вы засовываете в текст запроса?
Не пробовали класть в отдельную таблицу (Memory) и использовать ее в запросе?
dart_sitiusНо мне нужно обновлять минимум миллион строк в минуту.Это 17к в секунду, довольно много. Может, имеет смысл сменить тип таблиц на InnoDB или Memory?
...
Рейтинг: 0 / 0
20.11.2016, 22:42
    #39350671
dart_sitius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE large table WHERE id in (1,2,3)
авторИ все эти 150к чисел вы засовываете в текст запроса?
Не пробовали класть в отдельную таблицу (Memory) и использовать ее в запросе?
Не пробовал, попробую. Так должно быть быстрее?
автор Может, имеет смысл сменить тип таблиц на InnoDB или Memory?
Memory не получится из-за обьема (40млн строк). А вот InnoDB похоже должен дать выигрыш, спасибо, попробую
...
Рейтинг: 0 / 0
20.11.2016, 23:47
    #39350686
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE large table WHERE id in (1,2,3)
dart_sitiusMemory не получится из-за обьема (40млн строк).Само по себе это не приговор. Хотя да, расход памяти будет приличным - сотни мегабайт или единицы гигабайт в зависимости от структуры таблицы.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UPDATE large table WHERE id in (1,2,3) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]