首頁 > 資料庫 > mysql教程 > 您應該在 MySQL 資料庫中接受 NULL 值嗎?

您應該在 MySQL 資料庫中接受 NULL 值嗎?

Mary-Kate Olsen
發布: 2024-10-29 19:39:02
原創
405 人瀏覽過

Should You Embrace NULL Values in Your MySQL Database?

當 Null 是正確的資料庫選項時

在 MySQL 中使用資料庫表時,使用 NULL 值可能會引起關注。儘管其語義意義重大,但一些消息來源建議不要使用它,理由是效能問題。本文深入探討了適合使用 NULL 的情況,並探討了其中涉及的權衡。

適合 Null 的情況

在以下情況下適合使用 NULL:

  • 欄位真正代表缺失或不適用的值。
  • 從語意上講,NULL 表示該值不同於「false」和空字串。

效能注意事項

過去的文章曾提到有關可空欄位的效能問題。然而,缺乏支持這些說法的經驗證據。必須謹慎處理此類聲明,依靠可重複的測量而不是閒置的假設。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板