SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.02.2011 12:11:29

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

#1206 - The total number of locks exceeds the lock table size

Получаем следующую ошибку при попытке удалить порядка 8-10 млн записей из таблицы типа InnoDB. В имеющихся переменных не удалось найти подходящую, которая отвечает за эту настройку. Подскажите плз, какая перменная за это отвечает?

ЗЫ Есть вот такая переменная: max_write_lock_count 18446744073709551615, имхо похожа, но циферка смущает smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 21.02.2011 12:44:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: #1206 - The total number of locks exceeds the lock table size

Вы уверены, что это хорошая идея — удалять 8 миллионов строк из InnoDB одной
транзакцией? smile

Такого параметра, как количество строк в таблице блокировок, в MySQL нет. Эта
таблица выделяется динамически в InnoDB buffer pool. Имеет смысл:
а) использовать LOCK TABLES tablename WRITE явно в том потоке, который
будет удалять строки (чтобы не брать строчные блокировки)
б) удалять кусочками. Например, добавьте LIMIT 500000 и выполните запрос 20
раз — так не нужно будет брать сразу 10 миллионов блокировок wink

Неактивен

 

#3 21.02.2011 12:49:27

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: #1206 - The total number of locks exceeds the lock table size

LOCK TABLES низзя, таблица постоянно юзается инсертами smile
Обычно в удалении присутствовало до 4млн записей и никогда грабли не всплывали. Собссна уже разбил удаление на несколько запросов smile

Отредактированно Neval (21.02.2011 15:04:07)


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson