Følgende forespørgsel behøver ikke køre regelmæssigt og kan flyttes til et cron-job:
DELETE FROM failures WHERE release_time < ?;
Denne "booleske" forespørgsel returnerer 1, hvis personen er sortlistet, ellers 0:
SELECT
COUNT(ip_address) as blacklisted
FROM blacklist
WHERE
ip_address = ? AND
release_time > ? AND
failures > 5
Det kan fremskynde tingene, da du ikke bruger PHP til at tælle rækker og sammenligne tal:
if ($row['blacklisted']) { /* ... */ }
Jeg tror egentlig ikke, du kan undgå det sidste.