mysql の最適化 - mysql テーブルでフィールド列の長さが一貫していることを保証できない場合、char を使用する必要はありませんか?
PHP中文网
PHP中文网 2017-05-24 11:33:08
0
1
728

データ テーブルでは、各データ列の長さが固定されている場合、各データ行の長さも固定されます。データ テーブルに可変長のデータ列がある限り、各データ行の長さは固定されます。データ行が可変です。特定のデータ テーブルのデータ行の長さが可変の場合、ストレージ領域を節約するために、MySQL はこのデータ テーブルの固定長データを対応する列に変換します。可変長タイプ、長さが 4 文字未満の char データ列は varchar タイプに変換されません

テーブル内のフィールドが varchar の場合でも、このテーブルに char フィールドを作成することに意味はありますか?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(1)
伊谢尔伦

まず、char と varchar の違いを理解する必要があります。
1. CHAR の長さは固定されていますが、VARCHAR2 の長さは変更できます。たとえば、文字列「abc」を格納する場合、CHAR (10) の場合、格納する文字は 10 バイト (7 つの NULL 文字を含む) を占めることになります。同じ VARCHAR2 (10) は 3 バイトの長さのみを占め、10 は最大値にすぎません。格納する文字が 10 未満の場合は、実際の長さに応じて格納されます。
2. CHAR は VARCHAR2 よりもわずかに効率的です。
3.現在、VARCHAR は VARCHAR2 の同義語です。業界標準の VARCHAR 型は空の文字列を格納できますが、Oracle はそれを行いません。ただし、将来的にはそうする権利を留保します。 Oracle は、VARCHAR2 データ型を開発しました。この型は、データベースの varchar 列に空の文字列を格納できる機能を変更して、NULL 値を格納します。下位互換性が必要な場合は、VARCHAR ではなく VARCHAR2 を使用することをお勧めします。
いつ CHAR を使用し、いつ varchar2 を使用する必要がありますか?
CHAR と VARCHAR2 は相反する一体であり、この 2 つは補完的です。
VARCHAR2 は CHAR よりもスペースを節約しますが、効率性を高めるためにはある程度のスペースを犠牲にする必要があります。データベース設計において、私たちがよく「効率性のためのスペースのトレード」と呼ぶものです。
VARCHAR2 は CHAR よりもスペースを節約しますが、VARCHAR2 列が頻繁に変更され、変更されるデータの長さが毎回異なる場合、「行の移行」現象が発生し、冗長 I/O が発生するため、これは回避する必要があります。この場合、VARCHAR2 の代わりに CHAR を使用することをお勧めします。
この回答はBaiduの回答https://zhidao.baidu.com/ques...から引用しています
回答は非常に詳しいと思います

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート