Ho sul mio file PHP una funzione che controlla se un IP è bannato o meno. Per qualche ragione il mio sito è molto lento e il problema è quando controllo se l'IP è bannato o meno.mysql Query slow - Ricerca IP (vietata o meno)
(tolgo il codice che controlla e il mio sito è stato veloce di nuovo)
Ecco il mio codice:
// index.php - everything redirects to this file in the .htaccess
<?php
include('config.php');
if(isIpBanned($_SERVER['REMOTE_ADDR'])) {
die('access denied');
}
// rest of the code
Ecco la mia funzione
// config.php
<?php
function isIpBanned($db, $ip) { // $db is declared correctly
$goodIP = $db->getRecord("SELECT is_banned FROM security.ip WHERE ip = '$ip'"); // this function works and return 1 or 0
return (bool)$goodIP;
}
Questa query richiede circa 2 secondi per 3 secondi per correre. Perché? Non ho lasciato join o altri tavoli.
Grazie
1.1.1.1 non è un interger, come si può avere INT come tipo di dati? –
@Gino ricerca le funzioni PHP 'ip2long' e' long2ip' o le funzioni 'INET_ATON()' e 'INET_NTOA()' MySQL – CAFxX
INT è più veloce di CHAR (20) per la ricerca? –