1. ホーム
  2. mysql

[解決済み] MySQLです。大きなVARCHARとTEXTの比較?

2022-03-19 22:36:35

質問

MySQLにユーザー間のメッセージを記録するmessagesテーブルを持っています。典型的なIDとメッセージタイプ(すべて整数型)とは別に、実際のメッセージテキストをVARCHARまたはTEXTのいずれかで保存する必要があります。私はフロントエンドの制限を3000文字に設定しており、これより長いメッセージは決してデータベースに挿入されないことを意味します。

VARCHAR(3000)とTEXTのどちらかにする根拠はあるのでしょうか?VARCHAR(3000)と書くだけでは、どこか直感に反するような気がするのです。Stack Overflowで他の同様の投稿を見ましたが、このタイプの一般的なメッセージの保存に特化した見解を得られるとよいでしょう。

どのように解決するのですか?

  • TEXTBLOB かもしれません は、テーブルの外に格納され、テーブルは実際の格納場所へのポインタを持つだけです。 どこに格納されるかは、データサイズ、カラムサイズ、row_format、MySQL のバージョンなど、多くの事柄に依存します。

  • VARCHAR はテーブルとインラインで格納されます。 VARCHAR どちらが速いかは、データとハードウェアに依存するので、実際のデータを使ってベンチマークを取る必要があります。