2011-11-14 17 views
0

可能性の重複:
NULL in MySQL (Performance & Storage)パフォーマンスの最適化:ヌルは、パフォーマンス対許可されていない/許されていない場合、キー

あなたは非常にNULLがテーブルの列に許さオフにお勧めですか、場合:列がキーではありません

  • その列をSELECTまたはINSERTしてテーブルまたはUPDATEすることはできますが、WHERE、結合などのクエリのどの部分でも使用されることはありません(パフォーマンスの向上のためにどの列をインデックス化するかは決まります)。

したがって、上記の列に「NULL」チェックボックスをオンにしておくと(つまりNULLが許可されている)、パフォーマンスに影響しますか?

私は(少なくとも、MySQL用の)答えは願っています:

  • いいえ、それはありません、それはまったく影響はありませんでも1%、または
  • ためには影響しません。
+0

はその*チェックやオフにしないでください* 'NULL'はあなたのMySQLクライアント、おそらくphpMyAdminの中で何をすべきかです。あなたが実際にやっていることは、対応する 'CREATE/ALTER TABLE'ステートメントに列に' NULL'値が入っているかどうかを許可することです。 – Konerak

答えて

1

はい、私はあなたがNULL、NOT NULLである必要はありません任意の列を作るお勧めします。私の見解では

、それはNULLがデフォルトで有効になっていることを、SQLの「バグ」の一つです。

理由はパフォーマンスとは関係ありませんが、アプリケーションの正確さのためです。必須の列値を持っている場合、NOT NULLにするのがより理にかなっています(実際には、NULL値はエラーになります)。意味がある場合は、DEFAULT値を使用してください。要するに

:それはnullにするために、データベース構造内の正当な理由がない限り、カラムは、これまでNULL可能あってはなりません。

も注意NULLがユニークインデックスで「特別」な何かを行うこと - NULLを持つ複数の行が許可されています。

関連する問題