2012-01-22 5 views
0

私は多肢選択テストを書いていて、最も適切なデータ型が質問の質問テキスト(および回答)を格納するためのものであると思っています。質問のテキストはおそらくになります。通常は255文字未満ですが、時にはそれを超えることもあります。パフォーマンスとメモリ使用量の両方を考慮すると、TEXTフィールドが最適な選択肢ですか、TINYTEXTまたは別のものがありますか?多項選択テストのテキストを保存するために使用するMySQLデータタイプは何ですか?

答えて

1

もし255を超える場合は、varchar(10000)などを使用する必要があります。 varchar(255)より大きいvarcharはまったく同じ方法で格納されます。 Textデータ型には、パフォーマンスを考慮する必要がありますが、単純に使用しないと心配する必要はありません。

0

何千もの質問に対処しない限り、右の列タイプを選択することによるパフォーマンスの向上は、ごくわずかであり、目立たないものになります。また、列の索引付けを正しく行うと、パフォーマンスが問題になる前に長い道のりが得られます。ただし、TEXT列を持つためにオーバーヘッドがあるため、varcharフィールドはほとんどの場合、より高速な列になります。

また、varchar(255)と約tinytext(255)のサイズに注意してください。 varchar(255)は255文字を保持できます。 tinytext(255)は255バイトを保持できます。微妙な違いに注意してください。特にutf8で実行している場合は注意が必要です。これは、前者がより多くのものを保持できることを意味します。

一方、大量のレコードを考える必要がない場合は、varchar(255)列がサイズ質問の長さに対応するのに十分なスペースになるかどうかに集中する必要があります。その理由は、すべての質問を255文字に収めることができない場合は、大きな列に移動するしかありません。

関連する問題