varchar型の概要

抜粋します。https://www.jianshu.com/p/c3e188440c67

 

我々は、すべてとchar型よりもVARCHARことを知っている(性能がわずかに低下しても、チャークエリ速い)より多くのスペース固定長の文字に対して、VARCHARストレージが2つの部分に分割されます。

Vのarcharフィールド長=実際のデータ値+ Nの文字列の長さの長さ

文字列の長さの値は、ストレージの1つの又は2バイトによって占有されるように、実際のデータの長さに依存します。そこで、我々は来ています:

場合、実際のデータの長さ<時間= 255、VARCHARフィールド長= 1 + N;
際に実際のデータの長さ> 255時間、VARCHARフィールド長= 2 + N。

従って、データテーブルの設計では、VARCHAR(64)とvarchar(255)は、実用的なアプリケーションでメモリを占有することは同じであり、VARCHAR(256)とvarchar(50000)と同じです。

したがって、VARCHAR(n)は流域である255設定に関係なくVARCHAR(n)が、255以下であり、Nは全ての数で差がありませんvarchar型で(255)以上、最大まで、どんなにnはもありませんどのように何の違い

例えば、いくつかのデータベース設定のVARCHAR(1023)などが挙げられるが、実際にはこのVARCHAR(1024)、VARCHAR(1234)は、どのような違いがありませんでした!1023と1024は1023は、それが唯一の255で、特別な値ではありません、以下1つのバイトではありません。

データベースフィールドを設計する際に、文字列は、その上に255を超えるかどうかを検討する必要がある他には考えられません。長さnのそれは、ここで注意しなければならないのvarchar(n)は、文字ではなく、バイト長、関連する文字エンコーディングと実際のスペースです。


だから、設計の際に、いくつかの疑問は、なぜそれが最大の長さを設定することが可能であるが、大きなではありませんので、将来はトラブルにそれを取得するのに十分長くないのですか?たとえば、ユーザ名は、少し大きめの文字列格納フィールド、VARCHAR(256)で値切るする必要はありません(2000)VARCHARできVARCHAR(20)を使用する必要はありません(200)VARCHARすることができます。

長いスペースような、どのように多くの文字にそれを保存することができますか?UTF-8エンコーディングで保存されている場合、それぞれの文字は3つのバイトを占め、エクスプレッション・utf8mb4を置くことができる場合は、各文字は4つのバイトを占有します。

もちろん、長さが設計テーブルには、次の要因を考慮する必要がありvarchar型のフィールドの長さ、無限に長いではありません。

  • UTF-8の状態では、単一のVARCHAR(65535--2)/ 3 = 21 844の長さを超えることはできません。
  • 一緒にすべてのデータ・フィールドの長さの行が65,535以下です。
  • あなたは、長いテキストを保存するだけでテキストタイプ、ポインタメモリの長さの使用を検討する必要がある場合は
    N値からあまりにもつれVARCHAR(N)を持っていない、上記の知識、次のデータベースの設計を知って、そう、条件が許しますその前提の下で、可能な限り大きなセットなどの一部。

だから、varchar型の長さをけちるしないでください。




おすすめ

転載: www.cnblogs.com/xinruyi/p/11403151.html