De volgende query hoeft niet regelmatig te worden uitgevoerd en kan naar een cron-taak worden verplaatst:
DELETE FROM failures WHERE release_time < ?;
Deze "booleaanse" zoekopdracht levert 1 op als de persoon op de zwarte lijst staat, anders 0:
SELECT
COUNT(ip_address) as blacklisted
FROM blacklist
WHERE
ip_address = ? AND
release_time > ? AND
failures > 5
Het kan dingen versnellen omdat je geen PHP gebruikt om rijen te tellen en getallen te vergelijken:
if ($row['blacklisted']) { /* ... */ }
Ik denk niet dat je de laatste echt kunt vermijden.