私はPHPファイルに、IPが禁止されているかどうかをチェックする機能を持っています。何らかの理由で私のサイトが非常に遅く、問題がIPが禁止されているかどうかを確認するときです。mysqlクエリが遅い - IPルックアップ(禁止されているかどうか)
(私がチェックし、私のサイトは、高速再びだったコードを削除)
ここに私のコードです:
// 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
ここに私の関数は
// 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;
}
だこのクエリは約2秒かかります走るのに3秒。どうして?私は結合や他のテーブルを残していません。
ありがとうございました
1.1.1はインターガーではありません。どのようにデータ型としてINTを使用できますか? –
@Ginoルックアップの 'ip2long'と' long2ip' PHP関数、 'INET_ATON()'と 'INET_NTOA()' MySQL関数 – CAFxX
INTはルックアップの方がCHAR(20)より高速ですか? –