beba
Новичок
Здравствуйте.
Недавно столкнулся с одной проблемой. Пару раз в неделю приходит пару писем с ошибкой "Lock wait timeout exceeded; try restarting transaction".
Запрос выглядит следующим образом:
В первой таблице (queue_desc_status_history) сейчас записей 18 млн.
Во второй 4.5млн.
В обоих таблица стоит портирование по первичному ключу.
queue_id - ключевое поле.
Сервер: i7 920 (8x2.67), 24Gb DDR3, ЖД обычные SATA III не Enterprise.
Ключи все в оперативке, еще там есть место для них.
Вопроса в принципе два:
1. Оптимален ли такой запрос на вставку? Или лучше сделать отдельно SELECT а уже потом делать отдельные INSERT?
2. Может повлияло портирование таблиц? Не работал до этого, много читал положительного про портирование, и пока не было вопросов.
P.s. сервер тестовой среды пока в не рабочем состоянии (еще может дней 5), а на продакшене проверять не хотелось бы. Может тут кто подскажет по моей ситуации, по вопросам, которые возникли.
Спасибо
Недавно столкнулся с одной проблемой. Пару раз в неделю приходит пару писем с ошибкой "Lock wait timeout exceeded; try restarting transaction".
Запрос выглядит следующим образом:
PHP:
insert into queue_desc_status_history
(status_id, queue_desc_id, queue_id, user_id, date_added)
select
status_id, queue_desc_id, queue_id, user_id, last_modified
from
queue_desc
where
queue_id = ИДОЧЕРЕДИ
Во второй 4.5млн.
В обоих таблица стоит портирование по первичному ключу.
queue_id - ключевое поле.
Сервер: i7 920 (8x2.67), 24Gb DDR3, ЖД обычные SATA III не Enterprise.
Ключи все в оперативке, еще там есть место для них.
Вопроса в принципе два:
1. Оптимален ли такой запрос на вставку? Или лучше сделать отдельно SELECT а уже потом делать отдельные INSERT?
2. Может повлияло портирование таблиц? Не работал до этого, много читал положительного про портирование, и пока не было вопросов.
P.s. сервер тестовой среды пока в не рабочем состоянии (еще может дней 5), а на продакшене проверять не хотелось бы. Может тут кто подскажет по моей ситуации, по вопросам, которые возникли.
Спасибо