Заводим в базе поле навроде created_at, в которое вставляем NOW() для всех новых записей (или задаём значение по умолчанию CURRENT_TIMESTAMP, чтобы оно заполнялось автоматически). В ежеминутном запросе выбираем записи с created_at больше максимального created_at при прошлой проверке. Либо можно использовать монотонный идентификатор (auto_increment), помнить последний известный и выбирать новые записи больше последнего. Ещё иногда добавляют поле статуса события, в котором отмечают процесс обработки. Например, 0 - ещё не обработано, 1 - обрабатывается, 2 - обработано.
Идея из соседнего ответа использовать брокер очереди тоже неплоха, но ради такой простой задачи без высоких требований по скорости, надёжности, высоким объёмам, отказоустойчивости и масштабируемости это для простого бота будет чересчур. Можно иметь в виду и в какой-нибудь другой раз (когда это будет более осмысленно) воспользоваться советом.