mysql - データベース設計(スキーム設計)、NULLは出来るだけ避けるべき?
仅有的幸福
仅有的幸福 2017-05-18 10:54:25
0
2
731

実際の現象

学んだこと:

  1. NULL セマンティクスは不明瞭です

  2. クエリの最適化は簡単ではありません

  3. それが null 値を表す場合は、(論理的に) 他の代替手段が存在する可能性があります。

    • VARCHAR(100) はデフォルトでは NULL ではありません '';

    • INT NOT NULL デフォルト 0;

予想される現象

  1. スキームを設計する際の NULL に対する考え方を理解したいと思っています (NOT NULL DEFAULT XXX を試してみるべきだという記事を読んだ記憶があります)

仅有的幸福
仅有的幸福

全員に返信(2)
巴扎黑

はい、NULL 可能な列はできる限り避け、特にインデックス付き列の場合は、可能な限りデフォルト値を明示的に設定する必要があります。 mysql では、値にインデックスが付けられている場合、null はスペースを占有します。そのインデックスは無効です。

いいねを押す +0
某草草

はい、フィールドが空ではないと判断する場合は、mysql で is not NULL を使用する必要もあります。NULL 値は実際には B ツリー インデックスに格納されないため、インデックス付きフィールドを空にすることができます。 NULL、インデックス 効率が大幅に低下します。

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