簡體   English   中英

PHP .dat處理與MySQL查詢速度

[英]PHP .dat Processing vs MySQL Query Speed

為了監視垃圾郵件和不必要的爬蟲/機器人/刮板,我設置了帶有rel=nofollow鏈接和隱藏鏈接的蜜罐。 現在,我一周內將有200個IP地址被阻止。 我不打算使用.htaccess,因為.htaccess文件以后會變得非常大。

我將這些IP存儲在MySQL中,並在加載任何頁面之前向其查詢被阻止的IP。 目前還可以,但是隨着行數的增加將變慢。 我發現人們將此類數據存儲在.dat文件中,以避免訪問DB並可能加快搜索速度。 我以前從未處理過.dat文件,但似乎僅.txt文件!

我的問題是:

  • 是將阻止的IP存儲在.dat文件中,並用PHP處理它比將其存儲在mysql並進行查詢更快?
  • 兩種方法中哪一種更占用大量RAM?
  • 這樣檢查阻止的IP是否比阻止.htaccess文件(用於數千個IP)中的IP更好,或者Apache可以輕松處理大型htaccess文件?

我假設“ .dat”文件意味着您使用fopen()/ file_get_copntents()/ file()等直接通過php訪問文件?

這是非常危險的方法。 每個PHP實例都不知道其他PHP實例在做什么,這意味着為了避免破壞文件的內容,您需要進行注入鎖定-這將導致腳本速度變慢並占用更多內存。 還存在死鎖和超時的風險。

鑒於該列表可能會繼續增長,為了能夠在沒有太多開銷的情況下阻止訪問,將需要對其進行主動修剪。 使用DBMS提供了一種更有效地管理數據的方法。

如果是我,我將使用fail2ban-但這取決於對服務器具有root訪問權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM