首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mysql查询慢速IP查找(禁止或未禁止)

mysql查询慢速IP查找(禁止或未禁止)
EN

Stack Overflow用户
提问于 2011-11-02 19:08:03
回答 1查看 636关注 0票数 16

我的PHP文件上有一个检查IP是否被禁止的函数。由于某些原因,我的网站速度非常慢,问题是当我检查IP是否被禁止。

(我删除了检查的代码,我的网站再次变得很快)

下面是我的代码:

代码语言:javascript
复制
// 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

下面是我的函数

代码语言:javascript
复制
// 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秒的时间来运行。为什么?我没有left join或其他表。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-11-02 19:10:12

在ip列上建立索引。

网上有大量关于查询分析和改进的信息,所以我不再重复了,但是索引将会非常有帮助。

我猜security.ip是一个非常大的表,所以查找变得很慢。

索引的缺点:写入变得有点慢,所以如果你向那个表写了很多东西,你可以试着把禁止的部分卸载到一个新的表,比如banned_ips

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7979329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档