0

MySQLを使用しています。XMLファイルの内容をデータベースに保存する必要があります。ファイルのサイズは通常10k未満です。

テーブルは次のようになります。

articles
-----------
id
date
writer
...
file_name
file_content (Text)
file_date

dateとだけを選択すると、テーブルを分割するとパフォーマンスが向上しますwriterか?または、このテーブルを分割する他の理由はありますか?

4

1 に答える 1

3

これは垂直分割と呼ばれます。

基本的に、データセット全体が非常に大きく(たとえば、RAMよりも大きい)、ほとんどのクエリが大きなfile_contentデータを使用しない場合、別のテーブルに配置するとメインテーブルがはるかに小さくなり、RAMにキャッシュされやすくなります。そして、はるかに高速です。

もちろん、file_contentの取得は少し遅くなるため、使用頻度によって異なります。

私はフォーラムでこのテクニックを使用しました。投稿テキスト(HTMLに解析されたbbcode)をメインテーブルに保存し、元の投稿(bbcode)を別のテーブルに保存しました。フォーラムページを表示する場合、メインテーブルのみがヒットします。元の投稿テキストは、投稿の編集にのみ使用されます。これにより、投稿テーブルのサイズが2で除算され、このサーバーのRAMを2倍にする必要がなくなりました。

于 2011-07-17T09:00:27.520 に答える