SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

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

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

Вы не зашли.

#1 06.11.2008 17:04:37

Lem0nti
Гуру
Откуда: Северная Пальмира
Зарегистрирован: 08.11.2007
Сообщений: 98

Блокирование таблицы

Вот всть таблица, в которую регулярно что-то пишется, несколько раз в секунду. Таблица раз в сутки подрезается таким образом, чтобы оставались только 30 дней данных. И вот тут-то проблема - вставка и удаление начинают друг другу мешать. tx_isolation=REPEATABLE-READ . Если я правильно читал свой учебинк, то эти процессы не должны мешать друг другу, потому что их данные не пересекаются. Подскажите, пожалуйста, что я мог упустить? Какие настройки можно дёрнуть, чтобы повлиять на ситуацию в лучшую сторону?

Неактивен

 

#2 06.11.2008 18:42:35

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Блокирование таблицы

Таблицы Innodb? Удаление не мешает вставке только если прямо ассоциируется с первичным ключем. Проще всего вынимать id-шники строк на удаление, а затем удалять по id.

Неактивен

 

#3 06.11.2008 18:53:17

Lem0nti
Гуру
Откуда: Северная Пальмира
Зарегистрирован: 08.11.2007
Сообщений: 98

Re: Блокирование таблицы

Да, Innodb. Удаление идёт таким образом:
delete from ContextEvents where DATEDIFF(CURDATE(),EventTime)>Days;

Отредактированно Lem0nti (06.11.2008 18:53:39)

Неактивен

 

#4 06.11.2008 19:22:06

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Блокирование таблицы

В удалении функция, поэтому innodb блокирует всю таблицу (движок не может быстро связать запрос с неким диапазоном записей по первичному ключу). Решение
1. SELECT с Вашим условием
2. новая транзакция
3. DELETE ... WHERE id IN (..)

Неактивен

 

#5 06.11.2008 19:46:30

Lem0nti
Гуру
Откуда: Северная Пальмира
Зарегистрирован: 08.11.2007
Сообщений: 98

Re: Блокирование таблицы

Спасибо, буду пробовать.

Неактивен

 

Board footer

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