當 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中文網其他相關文章!