長い文字列のデータベースに最適なアプローチ


12

質問と回答をデータベースに保存する必要があります。質問は1〜2文ですが、回答は長くなり、少なくとも1段落、おそらくそれ以上になります。

私が今これを行うことを知っている唯一の方法は、SQLデータベースです。ただし、これまでのところ、これらのデータベースはこのタイプまたはサイズのデータ​​には使用されていないため、これが良い解決策であるとは思いません。これは正しい方法ですか、それともこのデータを保存するより良い方法がありますか?生の文字列を保存するよりも良い方法はありますか?



「長い」1k、5M、1GBを定義してください??
ジェームズアンダーソン、

なぜ「生」の文字列が好きではないのですか?データは実際には文字列ですか、それとも構造化データですか?あなたはそれを使って文字列では機能しない何かをするつもりですか?質問には、データベースが適切ではない理由は明確ではありません。文字列と同じです(または、CLOBが大きすぎて、使用しているデータベースに依存している場合はCLOB)。
psr 2012年

私はそれらを格納するいくつかの巧妙な方法に言及していました。おそらくプレーンテキスト文字列ではなく、ある種の圧縮によるものです。ここでは基本的にデータベースのサイズが心配です。
gsingh2011年

1
どのRDBMSを使用していますか?Oracleは、テキストの処理と検索に対して優れたサポートを提供しています。
マシューフリン

回答:


19

Mongodbは素晴らしいですが、SQLを知っています。フィールドに長い回答を保存しても問題はありません。SQLに画像やファイルを保存することもできます。最大フィールドサイズは2GBだと思います。

私はこの回答自体がどこかのテーブルフィールドに格納されていることにほぼ肯定的です。

何千もの問題はありません。何百万人も問題にはなりません。フィールドなどでキーワードを検索する場合は、フルテキストインデックスを利用することを検討してください。ただし、問題が発生するまで最適化しないようにします。コンピュータは安価で、ストレージは基本的に無料です。


11
実際に問題が発生するまで最適化しないでください+1
GrandmasterB 2012年

4
最大フィールドサイズはANSI SQLでは指定されていません。DBMSに依存します(通常、文字セット、列のデータタイプ、ストレージエンジン、OSなど、他のいくつかの要因)。
tdammers 2012年

6

データベース(SQLなど)に長いテキストを保存しても問題はありません。つまり、インターネット上のほぼすべてのブログエントリ(Wordpressを考える)、ニュース記事、およびフォーラム投稿(phpbbを考える)が保存されます。Stack Exchangeの設定の具体的な詳細はわかりませんが、質問もデータベースに保存されていると思います。ほとんどのSQLデータベースには、TEXT任意の長さのテキストデータを格納するためだけのフィールドタイプまたは同等のフィールドがあります。多くの企業では、全文検索システムも導入しています。

感情ではなく、技術的な知識と理解に基づいて技術的な決定を下します。


5

はい、それは正しい方法です。SQLデータベースに文字列を格納するのが目的です。DBの私のテーブルの1つには、ギガバイトのプレーンテキストデータがあり、正常に動作します。

収納スペースが気になる方は安いのでお忘れなく!

パフォーマンスが心配な場合は、心配しないでください。優れたデータベースは、投入したいデータの量に応じてスケールアップ(またはスケールアウト)できます。

あなたがしたい最後のことは、それが実際に問題になる前に、それのために今最適化を開始することです(DBまたは何かにナッツを入れる前に文字列を圧縮します)。あなたはただ自分にもっと仕事を与えているだけです。


2

大きな文字列やバイナリデータを格納する問題はありません。1テラバイトを超えるバイナリデータを含むデータベースで作業し、非常にうまく機能(postgres)しましたが、唯一の問題はバックアップ時間でした。

大きな問題は、「このテキストを常に検索する必要があるか」ということです。

テキスト内の文字列を検索する場合、1つのインデックスソリューションで考えることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.