0

TEXT と VARCHAR の 2 つのフィールドでは、ディスク容量に多少の違いがあります。

URL を格納するためにフィールドを使用する必要がありますが、私のホスティングは最大 333 文字の varchar をサポートしています。

ここに私のテーブルがあります:

  CREATE TABLE IF NOT EXISTS `urls` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `n_id` int unsigned NOT NULL DEFAULT '0',
  `first_citizen_id` int unsigned NOT NULL DEFAULT '0',
  `title_citizen` varchar(128) NOT NULL,
  `title_source` varchar(255) NOT NULL,
  `link` varchar(333) NOT NULL DEFAULT '',
  `link_image` varchar(333) NOT NULL DEFAULT '',
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `link` (`link`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
4

2 に答える 2

1

データ型ストレージ要件の章から:

次の表で、M は宣言された列の長さを非バイナリ文字列型の文字数とバイナリ文字列型のバイト数で表します。L は、特定の文字列値の実際の長さをバイト単位で表します。

VARCHAR(M), VARBINARY(M) 列の値に 0 ~ 255 バイトが必要な場合は L + 1 バイト、値が 255 バイトを超える可能性がある場合は L + 2 バイト

BLOB, TEXT L + 2 バイト、ここで L < 2 16

いずれにせよ、あなたのホスティング サービスが何も制限していないことは確かです。多くの大きな列を持つテーブルがあり、行の最大サイズに達した可能性があります。

于 2013-03-25T12:26:17.327 に答える
0

はい、Text は、それを保持するシステム テーブルへのポインタであり、他のタイプの Blob (Binary Large OBject) です。したがって、NULL でないテキスト フィールドごとに 4 または 8 バイトのポインタのオーバーヘッドがあります。

于 2013-03-25T13:59:04.407 に答える