Tôi có trên tệp PHP của tôi một chức năng kiểm tra xem một IP có bị cấm hay không. Đối với một số lý do trang web của tôi là rất chậm và vấn đề là khi tôi kiểm tra xem IP bị cấm hay không.Truy vấn mysql chậm - tra cứu IP (bị cấm hay không)
(tôi loại bỏ mã để kiểm tra và trang web của tôi đã nhanh chóng trở lại)
Dưới đây là mã của tôi:
// 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
đây là chức năng của tôi
// 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;
}
Truy vấn này mất khoảng 2 giây để 3 giây để chạy. Tại sao? Tôi không có tham gia hoặc các bảng khác.
Cảm ơn
1.1.1.1 không phải là trình kết nối, làm thế nào bạn có thể có INT làm kiểu dữ liệu? –
@Gino tra cứu hàm PHP 'ip2long' và' long2ip' hoặc hàm 'INET_ATON()' và 'INET_NTOA()' của hàm – CAFxX
INT nhanh hơn CHAR (20) để tra cứu? –