我有微小網址的服務,將數據發送到服務器使用Ajax功能,將數據發送到特定的頁面,並插入數據到數據庫簡單的工作。PHP:從溢出防止數據庫
我只是打了螢火蟲一點點,我發現我可以循環在第二的AJAX功能上千倍,它的浮動我的數據庫..我只是做了..
會話和cookie可能不明顯的原因在這裏工作..
how can i prevent this?
我有微小網址的服務,將數據發送到服務器使用Ajax功能,將數據發送到特定的頁面,並插入數據到數據庫簡單的工作。PHP:從溢出防止數據庫
我只是打了螢火蟲一點點,我發現我可以循環在第二的AJAX功能上千倍,它的浮動我的數據庫..我只是做了..
會話和cookie可能不明顯的原因在這裏工作..
how can i prevent this?
我想你想防止的是DOS(拒絕服務)攻擊。網上有很多關於如何防止這種情況的信息。對於一個非常簡單的服務解決方案,可以限制與數據庫的交互以在請求之間進行暫停。
您可以使用會話,以幫助防止這一點。
流量:
一個很簡單的方法來解決這個問題,很好地工作,並防止DDOS攻擊是在後處理函數上使用批量插入。對於你的tinyurl來說,保存所有在文件系統中作爲連接文件輸入的數據的平面文本文件(CSV)可以很好地適用於此。
然後運行一個cron作業,每隔1〜5分鐘讀取一次文本文件並執行批量插入到mysql。這裏的關鍵是做批量插入。執行1個批量插入比單個100,000,000個查詢效率更高。
給你一個想法,我應付每天海量數據的插入,我們得到每分鐘大約百萬插入請求。作爲單個查詢執行1密耳插入將花費我們的巨大的 db服務器大約15分鐘。做它們作爲批量插入大約需要18秒。這是驚人的快速大容量插入是多少,你也只在你的mysql盒上消耗1個連接。
批量插入非常類似於常規插入查詢唯一的區別就是在VALUES部分。在通常情況具有值=( 'ABC', '123', 'ABC'),比如你會現在有... VALUES =(( 'ABC', '123', 'ABCD'),( 'CDE' , '456', 'DSW');
希望這有助於:)
也許http://stackoverflow.com/questions/1375501/how-do-i-throttle-my-sites-的副本api-users – iblue 2012-02-07 22:29:32
您是否在尋找防止意外誤操作的措施,「讓我試試這個」 - 攻擊或惡意的「腳本小子」? – VolkerK 2012-02-07 22:59:12