Appris :
La sémantique NULL n'est pas claire
La requête n'est pas facile à optimiser
Si cela représente une valeur nulle, il peut y avoir d'autres alternatives (logiquement)
VARCHAR(100) NON NULL PAR DÉFAUT '';
INT PAS NULL PAR DÉFAUT 0;
J'espère comprendre l'attitude envers NULL lors de la conception d'un schéma (je me souviens avoir lu un article disant que vous devriez essayer : NOT NULL DEFAULT XXX)
Oui, les colonnes NULL doivent être évitées autant que possible et les valeurs par défaut doivent être explicitement définies autant que possible, en particulier pour les colonnes indexées. Dans MySQL, null prend de la place. Si la valeur est indexée, son index n'est pas valide.
Oui, pour juger qu'un champ n'est pas vide, vous devez également utiliser n'est pas NULL dans MySQL prend en fait de l'espace. Les valeurs NULL ne sont pas stockées dans les index B-tree, donc si le champ indexé le peut. être NULL, l'index L'efficacité diminuera considérablement.