Tengo en mi archivo PHP una función que verifica si una IP está prohibida o no. Por alguna razón, mi sitio es muy lento y el problema es cuando verifico si la IP está prohibida o no.mysql Consulta lenta - Búsqueda de IP (prohibida o no)
(elimino el código que comprueba y mi sitio era rápido de nuevo)
Aquí está mi código:
// 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
aquí es mi función
// 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;
}
Esta consulta dura aproximadamente 2 segundos para 3 segundos para ejecutar. ¿Por qué? No me queda join u otras tablas.
Gracias
1.1.1.1 no es un interger, ¿cómo se puede tener INT como tipo de datos? –
@Gino busca las funciones PHP 'ip2long' y' long2ip' o las funciones 'INET_ATON()' y 'INET_NTOA()' MySQL – CAFxX
INT son más rápidas que CHAR (20) para la búsqueda? –