Kueri berikut tidak perlu dijalankan secara teratur dan dapat dipindahkan ke tugas cron:
DELETE FROM failures WHERE release_time < ?;
Kueri "boolean" ini akan mengembalikan 1 jika orang tersebut masuk daftar hitam, 0 jika tidak:
SELECT
COUNT(ip_address) as blacklisted
FROM blacklist
WHERE
ip_address = ? AND
release_time > ? AND
failures > 5
Ini mungkin mempercepat karena Anda tidak menggunakan PHP untuk menghitung baris dan membandingkan angka:
if ($row['blacklisted']) { /* ... */ }
Saya tidak berpikir Anda benar-benar dapat menghindari yang terakhir.