2011-01-14 15 views
2

非常に大きい(最大ギガバイト)テキスト(ログファイル)があります。それらはデータベースに格納されているエンティティに関連付けられており、SQLデータベース内に格納するか外部ファイルに格納するかを判断しようとしています。SQLデータベースに大きなテキストのBLOBを格納するオプション?

データベース内の記憶域がMySQLのLONGTEXTフィールドに4GBに制限されているようですが、おそらく他のDBにも同様の制限があります。また、データベースに保存すると、このデータを表示する際にあらゆる種類のシークが妨げられることになります。データの一部をレンダリングするには、データの全長をロードする必要があります。

私はこのデータをDBの外に保存することに傾いているようです:大規模なBLOBをデータベースに格納することについての心配はありますか?そして、もしそれらをデータベースから外して保存するつもりならそのためのフレームワーク/ライブラリ

(私はpythonで働いたが、あまりにも他の言語での技術に興味を持っています)

答えて

2

あなたの不安は有効です。

DBは、数年前に大きなバイナリとテキストフィールドを処理する能力を得て、誰もが試した後、私たちはあきらめました。

この問題は、ラージオブジェクトに対する操作が、アトム値に対する操作と大きく異なる傾向があることに起因しています。したがって、コードは難しく、一貫性がなくなります。

だから、ほとんどの退役軍人は、dbにポインタを持ってファイルシステムに格納するだけです。

0

私はPHP/MySQLの/オラクル/もっとPROB知っているあなたはファイルポインタを持っているかのように大規模なデータベースオブジェクトを操作でき、メモリの問題を回避します。

+0

このファイルのようなアクセスがmysqlに対してどのように実行されるかに関する情報へのリンクを提供できますか? – kdt

関連する問題