Maison > Article > base de données > Devriez-vous adopter les valeurs NULL dans votre base de données MySQL ?
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 :
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 | +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+
É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!