プロキシ/クローラを作成したのはもうしばらく前です。私はこれが簡単でOKの解決策であると思っていましたが、一度それが1 000 000のファイルに近づくにつれて、より多くの問題に遭遇したことに気付きました。データベースの検索には最大15秒かかることがあり、先週の2回のサーバークラッシュの経験があります。私はapache2を再起動し、端末で "test"とspam "free -m"コマンドを検索しました。私はラムがすぐに高くなったことに気付きました。そしておそらくクラッシュを引き起こすラムでしょう。私は何が検索エンジンを速くするか分からないが、本当に知りたい。フォルダとサブフォルダのパスを高速なデータベースエンジンにインポートする
すべてのファイルが下に格納されています
database/*/*/*.txt
そしてそれらすべてを通過するために、このコードを使用します。
$files = array();
$dir = '/var/www/html/database';
foreach (glob($dir . '/*/*/*.txt', GLOB_NOCHECK) as $path) {
$title = basename($path, ".txt");
if(strripos($title,$search) !== false){
array_push($files, $path);
}
}
コードがはるかに長いですが、私はどれだけの基本を見せたかったですできます。
各ファイルには約6行の有用な情報が含まれています。
私は解決策を探し始めました。 JavaやCのようにPHPよりも高速に検索できるものを検索するとどうなりますか?ああ、それは混乱するだろう。だから私はMySQLについて考えた。しかし、フォルダとサブフォルダからすべてのファイルをMySQLにどのように転送すればよいですか?サーバーはDebianを実行しており、4GBのRAMとi3プロセッサを搭載しています。
MySQLが混乱していて、他の解決策が見つかりませんでしたので、まだ何もしていません。私は何をすべきか?