


Devriez-vous adopter les valeurs NULL dans votre base de données MySQL ?
Oct 29, 2024 pm 07:39 PMLorsque 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 | +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+
É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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
