1

大量のページセットのHTMLコードをMySQLデータベースに保存するWebクローラーをPythonで作成しています。データの処理を開始する前に、保存と処理の方法が最適であることを確認したいと思います。私はしたいと思います:

  • データベースで使用されるストレージスペースを最小限に抑えます。おそらく、HTMLコード、ハフマンエンコーディング、またはその他の形式の圧縮を最小限に抑えます。全文検索の可能性を維持したいのですが、ハフマン符号化のような圧縮アルゴリズムでこれが可能かどうかはわかりません。

  • 大量の行をエンコードして格納するために必要なプロセッサの使用量を最小限に抑えます。

この問題または同様の問題について、誰か提案や経験がありますか?多数のHTTPリクエストと正規表現に加えて、最適な圧縮が必要になることを考えると、Pythonはこれを行うのに最適な言語ですか?

4

2 に答える 2

1

HTMLがMySQLに対して不透明であることを気にしない場合は、COMPRESS関数を使用してデータを格納し、UNCOMPRESSを使用してデータを取得できます。WHERE句でHTMLコンテンツを使用することはできません(たとえば、LIKEを使用)。

于 2011-11-13T05:42:27.313 に答える
0

ソースをデータベースに実際に保存する必要がありますか?

データに対して「LIKE」クエリを実行しようとすると、とにかく大きな時間がかかります。

生データを標準ファイルとしてファイルシステムに保存します。それらすべてを1つのフォルダーに貼り付けないでください。IDのハッシュを使用して、予測可能なフォルダーに保存します。

(もちろん、データベースにテキストを保存することは完全に可能ですが、データベースのサイズが大きくなり、操作が難しくなります。バックアップは(はるかに!)大きくなり、ストレージエンジンが変更され、より苦痛になります。スケーリングなど。ファイルシステムは、通常、別のハードディスクを追加する場合にすぎません。データベースではそれほど簡単には機能しません。シャーディングが必要になります)

...データに対してあらゆる種類の検索を行うには、インデックスの作成を検討します。私はSphinxSearchの経験しかありませんが、入力データベースでファイル名を指定できます。

于 2011-11-15T19:14:30.100 に答える