Stack Overflow на русском Asked by Jonny Manowar on February 22, 2021
Получаю время от времени ошибку
Message: SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock
detected
Запрос вида (для примера сокращу, в запросе может быть до 250 строк и много контента):
INSERT INTO link (
parsed,
error,
error_message,
url,
title,
author_name,
date,
date_parsed,
updated_at,
rss_id,
content,
content_tsvector
) VALUES (true, false, '', 'https://medium.com/@scottishforsocial/a-leading-voice-from-india-transforming-indian-education-8655f91dd7b7', 'A leading voice from India-Transforming Indian Education', 'ScottishHigh', '2020-08-06 04:50:16', '2020-08-07 08:30:14', '2020-08-07 08:30:14',
221808, 'content', to_tsvector('content')) ON CONFLICT DO NOTHING
RETURNING id, rss_id
Так же есть ньюанс что подобные запросы выполняются на 40 серверах к одной базе данных
Как с таким бороться?
в запросе может быть до 250 строк
Логично предположить, что конкурентно вставляете одни и те же данные в разном порядке.
Как же ON CONFLICT DO NOTHING
? А что он может?
insert на много строк всё равно транзакция и потому может быть аналогично.
Отсортируйте записываемые множества по какому-либо признаку в идентичном порядке.
Answered by Мелкий on February 22, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP