Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP.dat处理与MySQL查询速度_Php_Mysql_Apache_.htaccess - Fatal编程技术网

PHP.dat处理与MySQL查询速度

PHP.dat处理与MySQL查询速度,php,mysql,apache,.htaccess,Php,Mysql,Apache,.htaccess,为了监视垃圾邮件和不必要的爬虫/机器人/爬虫,我设置了带有rel=nofollow链接和隐藏链接的蜜罐。现在我有近200个IP在一周内阻止。我不打算使用.htaccess,因为.htaccess文件稍后将变得非常大 我将这些IP存储在MySQL中,并在任何页面加载之前查询它是否有阻塞的IP。现在还可以,但随着行数的增加,速度会变慢。我发现人们将这些数据存储在.dat文件中,以避免点击数据库,或许还可以加快搜索速度。我以前从未处理过.dat文件,但它似乎只是.txt文件 我的问题是: 将阻塞的I

为了监视垃圾邮件和不必要的爬虫/机器人/爬虫,我设置了带有
rel=nofollow
链接和隐藏链接的蜜罐。现在我有近200个IP在一周内阻止。我不打算使用.htaccess,因为.htaccess文件稍后将变得非常大

我将这些IP存储在MySQL中,并在任何页面加载之前查询它是否有阻塞的IP。现在还可以,但随着行数的增加,速度会变慢。我发现人们将这些数据存储在
.dat
文件中,以避免点击数据库,或许还可以加快搜索速度。我以前从未处理过
.dat
文件,但它似乎只是.txt文件

我的问题是:

  • 将阻塞的IP存储在
    .dat
    文件中并用PHP处理是否比将其存储在
    mysql
    中并查询更快
  • 这两种方法中哪一种更需要RAM
  • 这样检查阻塞的IP是否比在
    .htaccess
    文件中阻塞IP(对于数千个IP)或Apache可以轻松处理大型
    htaccess
    文件更好

我假设“.dat”文件是指php使用fopen()/file\u get\u copontents()/file()等直接访问的文件

这是一种非常危险的做法。每个PHP实例都不知道其他PHP实例在做什么,这意味着为了避免文件内容被破坏,您需要执行锁定,这将导致脚本速度减慢并使用更多内存。此外,还存在死锁和超时的潜在风险

鉴于该列表可能会继续增长,为了能够在没有太多开销的情况下阻止访问,需要对其进行积极的修剪。使用DBMS提供了一种更有效地管理数据的方法


如果是我,我会使用fail2ban,但这取决于是否具有对服务器的root访问权限。

如果存储在文本文件中,则必须打开、读取并分析其内容。sql数据库针对这类操作进行了优化。