sql >> Database >  >> RDS >> Mysql

IP-zwarte lijst in PHP+MySQL

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.




  1. Uitvoeringstijd van testquery's in laravel

  2. Kan geen verbinding maken met MySQL-server op 'localhost' (10061)

  3. De beste manier om het aantal resultaten te krijgen voordat LIMIT werd toegepast

  4. Hoe PostgreSQL-arrayveld in Django ORM in kaart te brengen