Кварц слишком медленно выбирается из большого числа триггеров, как я могу это сделать?
У меня есть три миллиона триггер в таблице QRTZ_TRIGGERS.
И ниже я обнаружил, что запрос слишком медленный, потому что ORDER BY NEXT_FIRE_TIME ASC, PRIORITY DESC. Если убрать заказ по sql, запрос выполняется быстро.
CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
SELECT TRIGGER_NAME,
TRIGGER_GROUP
FROM QRTZ_TRIGGERS
WHERE SCHED_NAME = 'TestScheduler1'
AND NOT (MISFIRE_INSTR = -1)
AND NEXT_FIRE_TIME < 1521430157456
AND TRIGGER_STATE = 'WAITING'
ORDER BY NEXT_FIRE_TIME ASC,
PRIORITY DESC
Могу ли я просто исправить, добавив лимит? или любой другой способ может решить этот вопрос?
Я попытался добавить три индекса
1) NEXT_FIRE_TIME
И если просто ORDER BY NEXT_FIRE_TIME ASC, скорость в порядке.
2) PRIOIRTY DESC Если просто сделать заказ по PRIORITY DESC, скорость будет низкой.
Версия MySQL 5.7.20