6

かなり大規模なプロジェクト (約 600 人のユーザーが 1 日を通して使用している - 少なくとも私にとっては大規模です ;-)) のために、大規模でありながら単純なフォームを多数作成しています。

フォームには質問と回答のセクションがたくさんあるので、文章を入力する人もいれば、小説を入力する人もいます。 これらのフィールドの一部に文字数制限を設けることは、実際にどれほど有益でしょうか?

(必要/可能であれば、参照または引用を含めてください - ありがとう!)

4

5 に答える 5

5

データ サイズに制限がない場合は、心配する必要はありません。これは、600 人のユーザーと数千のレコードがあるにもかかわらず、ミッション クリティカルなプロジェクトとは思えません。CLOB/BLOB を使用して完了します。サイズを制限し、データ損失のリスクを冒すことで大きな利益が得られるかどうかについては疑問があります. とはいえ、実装前にそのような境界をレイアウトする必要があります。

通常、varchar は、論理的に使用して「値全体」の比較を実行する値を格納するのに最適です。テキストは非構造化データ用です。プロジェクトが構造化されていないテキストを含む調査結果である場合は、CLOB/BLOB を使用します

準参照: 私は数十万件のコール センター レコードを扱っており、CLOB を使用して従業員と顧客の間の会話を保存することもあります。

于 2008-10-28T13:24:28.563 に答える
4

つまり、ユーザーのニーズに焦点を合わせ、データベースのパフォーマンスの問題が発生した場合にのみ心配します。「ユーザーが入力できるデータの量を制限すると、ユーザーにメリットがありますか」と自問してください。

私は壁に「ソフトウェアが行うことではなく、ユーザーが行うことです」という素晴らしいギャップのある漫画を置いています。

于 2008-10-28T14:09:12.670 に答える
3

使用しているSQLサーバーについては言及していません

MySql を使用している場合、固定長フィールドを使用してテーブルを静的モードに保つことには、速度の点で明確な利点がありますが、可変幅フィールドがある場合、テーブルは動的に切り替わり、フィールドの長さを指定する利点が失われます。 .

http://dev.mysql.com/doc/refman/5.0/en/static-format.html
http://dev.mysql.com/doc/refman/5.0/en/dynamic-format.html

固定長の列を使用すると、Microsoft SQL Server のパフォーマンスも同様に向上します。固定長の列を使用すると、サーバーは行のデータのオフセットと長さを正確に認識します。可変長列の場合、サーバーはオフセットを認識していますが、データの実際の長さを前の 2 バイト カウンターとして格納する必要があります。これには、ディスク容量の関数としてのパフォーマンスと可変長列の利点について説明しているこの興味深い記事で説明されているいくつかの意味があります。

SQL Server 2005 以降を使用している場合は、varchar(max) を利用できます。この列の種類には、BLOB と同じ 2 GB のストレージ容量がありますが、データは別のストアではなく、テーブル データ ページと共に 8K のチャンクに格納されます。したがって、大きなサイズの利点が得られ、ページで一度に 8K のみを使用し、DB エンジンにすばやくアクセスでき、他の列タイプで機能するのと同じクエリ セマンティクスが varchar(max) でも機能します。

最終的に、可変列に最大長を指定すると、主にデータベースの成長サイズを制限できます。可変長の列を使用すると、固定サイズの行の利点が失われ、同じ量のデータを保持する場合、varchar(max) は varchar(10) と同じように実行されます。

于 2008-12-02T20:06:39.867 に答える
2

blob と text / ntext は行コンテキストの外に格納され、参照のみがオブジェクトに格納されるため、行サイズが小さくなり、クラスター化インデックスのパフォーマンスが向上します。

ただし、text / ntext は行データの取得と共に保存されないため、時間がかかり、これらのフィールドは比較ステートメントで使用できません。

于 2008-10-28T13:23:09.063 に答える
1

から: http://www.making-the-web.com/2008/03/24/ Saving-bytes-effective-data-storage-mysql-part-1/

サイズに影響する TEXT 型と BLOB 型にはいくつかのバリエーションがあります。彼らです:

Type -                      Maximum Length -Storage
TINYBLOB, TINYTEXT          255             Length+1 bytes
BLOB, TEXT                  65535           Length+2 bytes
MEDIUMBLOB, MEDIUMTEXT      16777215        Length+3 bytes
LONGBLOB, LONGTEXT          4294967295      Length+4 bytes
于 2008-10-28T13:28:34.357 に答える