LIMIT {[offset,] row_count | row_count OFFSET offset}
`date` < CONVERT(UNIX_TIMESTAMP(), SIGNED)
попадёт 50% строк, а значит проще перебрать все строки, чем читать в одном месте индекс, в другом строки, на которые он ссылается. `date` < UNIX_TIMESTAMP() - 23328000
и транзакцию с захватом таблиц при добавлении брони.