2

つまり、ここでの SQL は、SQL サーバー、My SQL、SQLite、さらには MS Access などの SQL のようなデータベースにすることができます。テーブルのサイズが何に依存しているかを知りたいです。それは、固定的に設計された構造を持つテーブル内の実際の行に依存するか、テーブル内のセルの内容にも依存します。例えば:

次のような固定的に設計された構造を持つテーブルがあります。

create table SampleTable (
   ID int primary key,
   Message varchar(500)
)

そして、ここに1行のテーブルがあります:

ID    |     Message
1           I love .NET     --11 characters for Message

また、1行のテーブルもあります:

ID    |     Message
1           I also love Java     --16 characters for Message

サイズが行数に依存する場合、上の 2 つのテーブルは同じサイズになります。セルの内容にも依存する場合は、2 番目のテーブルのサイズが大きくなります。どちらが大きいか知りたいです。場合によっては、フィールドの最大文字数 (SQL サーバーでは 8000) を最大化し、ユーザーがほとんど何も入力する必要がないようにしたいのですが、作成するのが怖いので、私はこれに気を配っています。データベース ファイルが大きすぎます (不必要にコストがかかります)。

あなたの助けは非常に高く評価されます!

4

4 に答える 4

3

大まかに言えば、テーブルのサイズは

  • 固定幅の列 (integer、float、char(n) など) のサイズと、
  • 可変幅の列 (varchar(n)、clob など) のデータのサイズに加えて
  • インデックスのサイズと
  • インデックスのオーバーヘッドとプラス
  • テーブルのオーバーヘッドとプラス
  • 行オーバーヘッド、プラス
  • 列のオーバーヘッド、マイナス
  • 現時点では考えられない圧縮やその他の内部最適化。

オーバーヘッドはあなたを驚かせることができます。

パーティショニングやその他の構造の最適化は、table の意味に影響を与える可能性があります。

于 2013-05-03T16:39:54.747 に答える
3

varchar (または nvarchar) フィールドは、必要なスペースのみを使用します。

そのような少量のデータは、より少ないスペースを占有します。同等の固定長 (char、nchar) は完全な長さを使用します。

varchar フィールドのストレージ サイズは、入力されたデータの実際の長さ + 2 バイトです http://msdn.microsoft.com/en-us/library/ms176089.aspx

于 2013-05-03T15:47:00.497 に答える