Maison > base de données > tutoriel mysql > Devriez-vous adopter les valeurs NULL dans votre base de données MySQL ?

Devriez-vous adopter les valeurs NULL dans votre base de données MySQL ?

Mary-Kate Olsen
Libérer: 2024-10-29 19:39:02
original
406 Les gens l'ont consulté

Should You Embrace NULL Values in Your MySQL Database?

Lorsque Null est la bonne option de base de données

Lorsque vous travaillez avec des tables de base de données dans MySQL, l'utilisation de valeurs NULL peut soulever des problèmes. Malgré son importance sémantique, certaines sources déconseillent son utilisation, invoquant des problèmes de performances. Cet article examine les circonstances dans lesquelles l'utilisation de NULL est appropriée et explore les compromis impliqués.

Circonstances appropriées pour Null

L'utilisation de NULL est appropriée lorsque :

  • Un champ représente véritablement une valeur manquante ou inapplicable.
  • Sémantiquement, NULL indique qu'une valeur est distincte à la fois de "false" et de la chaîne vide.

Considérations sur les performances

Des articles précédents ont mentionné des problèmes de performances concernant les champs nullables. Cependant, les preuves empiriques pour étayer ces affirmations font défaut. Il est essentiel d'aborder de telles affirmations avec prudence, en s'appuyant sur des mesures reproductibles plutôt que sur des suppositions vaines.

Dans MySQL, l'utilisation d'un index peut optimiser les recherches de valeurs NULL. L'exemple suivant montre l'utilisation d'un index avec une recherche 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 | 
+----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+
Copier après la connexion

Éviter les valeurs nulles : une approche erronée

Remplacer NULL par des valeurs telles que zéro, des chaînes vides , ou false est une décision de conception erronée. Ces valeurs peuvent représenter des données significatives dans la colonne. L'utilisation de NULL permet d'utiliser la gamme complète de valeurs de données sans ambiguïté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal