Gin*_*van 16 php mysql ip performance
我在我的PHP文件上有一个函数,用于检查IP是否被禁止.出于某种原因,我的网站非常慢,问题是当我检查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
Run Code Online (Sandbox Code Playgroud)
这是我的功能
// 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;
}
Run Code Online (Sandbox Code Playgroud)
此查询大约需要2秒到3秒才能运行.为什么?我没有离开加入或其他表.
谢谢
CAF*_*FxX 26
IP列上放一个(唯一的?)索引INT UNSIGNED,ipv6 in 2 BIGINT UNSIGNED),使用正确的数据类型:这将使您的表更小,并且在扫描期间将需要更少的I/O并且,作为旁注,即使$_SERVER["REMOTE_ADDR"]应该是安全的,也绝对不要忘记SQL查询中的数据!
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |