当 Null 是正确的数据库选项时
在 MySQL 中使用数据库表时,使用 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或 false 是有缺陷的设计决策。这些值可以代表列内有意义的数据。使用 NULL 可以毫无歧义地使用全部数据值。
以上是您应该在 MySQL 数据库中接受 NULL 值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!