Опция "Отключить Mysql-запрос при выводе общего списка записей"

Пишите ваши предложения здесь.
Ответить
dilon
Спонсор
Спонсор
Сообщения: 226
Зарегистрирован: 31 мар 2018, 23:43
Имя: Алексей
Откуда: Саратов

Опция "Отключить Mysql-запрос при выводе общего списка записей"

Сообщение dilon »

Здравствуйте.
Есть сущность Контакты. 32000 записей. Есть подсущность Задачи.
У некоторых контактов есть несколько десятков задач. У некоторых ни одной.

В сущности Задачи есть поле "номер акта" Он бывает заполнен, а бывает пустой. По конкретному контакту требуется знать какой был номер акта последней задачи, пропуская задачи с пустым номером акта.
Поэтому в сущности Контакты было сделано поле "Последний номер акта". Тип поля "Mysql запрос". Условие msq.parent_item_id = e.id and [587] <> '' and [587] IS NOT NULL ORDER BY msq.id DESC
И все работает отлично.
Но.
После этого перестал отображаться общий список записей сущности Контакты. Даже если в списке отображаемых столбцов нет поля "Последний номер акта". Видимо слишком большая нагрузка делать вывод 32 000 записей, и еще по каждой делать select в подсущностях. И Падает в ошибку 504 Gateway Timeout. Причем с каким-либо фильтром список контактов отображается. А общий список без фильтров из 32000 контактов нет.
MariaDB [(none)]> SHOW PROCESSLIST; показал, что зависание происходит именно из-за этого запроса.

При этом на самом деле поле "Последний номер акта" нужно видеть, только когда открывается одна карточка контакта. В общем списке контактов это поле видеть не требуется.

В связи с этим предложение. В типе поля "Mysql запрос" добавить опцию "Отключить Mysql-запрос при выводе общего списка записей"
Тем самым существенно снижая нагрузку на сервер.
Ответить