LINUX.ORG.RU

MySQL периодически выдает пустой результат

 


0

2

При интенсивных запросах MySQL периодически выдает пустой результат.
Т.е. в скрипте запросы типа:

SELECT u.username, tt.user_id, tt.profit, tt.fork_id FROM t_transactions tt JOIN user u ON u.id = tt.user_id WHERE tt.fork_id IN (252824686,261800681,263143878,263611489,265281093,294482005,294522872,299342900) AND tt.is_completed > 0 AND tt.sended = 0 AND u.username = 'user1'


Выдает пусто. Никаких ошибок не кидает. При это выполнив запрос вручную - получаю данные. Что за? И как с этим справляться?

MariaDB 10.1.23
Debian 9 amd64

Запросы делаются с другого сервера на Debian 8 amd64 через ssh туннель

★★★★★
Ответ на: комментарий от MyTrooName

append-only

это как понять? UPDATE'ы проходят. Но тоже с перебоями

Если ты имеешь в виду, что туда только добавляются данные, но не изменяются, то нет

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 1)
Ответ на: комментарий от Qwentor

я к тому, что могут возникать моменты, когда пустой ответ на твой запрос - это ровно то, что и должно быть. если ты после этого делаешь запрос вручную, получаешь уже другой ответ, со всей вероятностью - не пустой

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 2)

У вас сложное условие, скорей всего в какой то момент по нему нет данных

Сделайте условия запроса предсказуемыми, например обновление таблицы только в транзакции, данные на момент запроса должны быть актуальными, никаких апдейтов на момент запроса

ism ★★★
()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от MyTrooName

В общем ты прав. Пустой ответ - это то, что и должно быть. Но не в ответ на этот запрос. Возникли траблы с параллельностью. Сделал коннект не общий, а в каждом потоке свой - все нормализовалось. Потоки получали не свой ответ.

Qwentor ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.