NULL が適切なデータベース オプションである場合
MySQL でデータベース テーブルを操作する場合、NULL 値を使用すると懸念が生じる場合があります。セマンティックな重要性にもかかわらず、一部の情報源はパフォーマンスの問題を理由にその使用を控えるよう勧告しています。この記事では、NULL の使用が適切な状況を詳しく掘り下げ、それに伴うトレードオフについて説明します。
NULL に適切な状況
次の場合に NULL の使用が適切です。
パフォーマンスに関する考慮事項
過去の記事では、Null 許容フィールドに関するパフォーマンスの問題について言及しました。しかし、これらの主張を裏付ける経験的証拠は不足しています。このような主張には慎重にアプローチし、根拠のない仮定ではなく再現可能な測定に依存することが重要です。
MySQL では、インデックスを利用することで NULL 値の検索を最適化できます。次の例は、NULL 検索でのインデックスの使用を示しています。
mysql> CREATE TABLE foo ( i INT NOT NULL, j INT DEFAULT NULL, PRIMARY KEY (i), UNIQUE KEY j_index (j) ); mysql> INSERT INTO foo (i, j) VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, 5); mysql> EXPLAIN SELECT * FROM foo WHERE j IS NULL; +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+ | 1 | SIMPLE | foo | ref | j_index | j_index | 5 | const | 2 | Using where | +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+
NULL の回避: 誤ったアプローチ
NULL をゼロや空の文字列などの値に置き換える、または false は設計上の決定に欠陥があります。これらの値は、列内の意味のあるデータを表す場合があります。 NULL を使用すると、全範囲のデータ値を曖昧さなく利用できるようになります。
以上がMySQL データベースで NULL 値を受け入れる必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。