Wenn ein bestimmtes Feld in der Datenbank auf Null gesetzt ist, gibt das mobile Endgerät standardmäßig Null zurück. Wenn ich möchte, dass das mobile Endgerät Null zurückgibt, muss ich ein Urteil fällen.
1. Wenn ich möchte, dass das Mobiltelefon leer zurückkommt, ohne ein Urteil zu fällen, wie soll ich das Tabellenfeld als Standard festlegen?
2. Ist es besser, das Tabellenfeld standardmäßig auf Null, „“ oder „Leere Zeichenfolge“ zu setzen? Sind sie unterschiedlich?
Wenn ein bestimmtes Feld in der Datenbank auf Null gesetzt ist, gibt das mobile Endgerät standardmäßig Null zurück. Wenn ich möchte, dass das mobile Endgerät Null zurückgibt, muss ich ein Urteil fällen.
1. Wenn ich möchte, dass das Mobiltelefon leer zurückkommt, ohne ein Urteil zu fällen, wie soll ich das Tabellenfeld als Standard festlegen?
2. Ist es besser, das Tabellenfeld standardmäßig auf Null, „“ oder „Leere Zeichenfolge“ zu setzen? Sind sie unterschiedlich?
1: NULL-Wert ('') nimmt keinen Platz ein
2: NULL in MySQL nimmt tatsächlich Platz ein. Offizielle Dokumentbeschreibung:
„NULL-Spalten benötigen zusätzlichen Platz in der Zeile, um aufzuzeichnen, ob ihre Werte NULL sind. Bei MyISAM-Tabellen benötigt jede NULL-Spalte ein Bit zusätzlich, aufgerundet auf das nächste Byte.“ MySQL-Design Es wird empfohlen, beim Erstellen von Tabellen nicht den Standardwert NULL zu verwenden.
Der String-Typ kann standardmäßig auf '' und der int-Typ auf 0 festgelegt werden.
Wenn der Poster feststellen möchte, ob das Feld leer ist, verwenden Sie einfach PHP um es zu verarbeiten
SQL: Verwendung von NULL-Werten vs. Standardwerten
Ist es gut, den Standardwert NULL zu verwenden?
Kein Standardwert vs. NULL vs. 0 in MySQL als Standardwert für Text- und Ganzzahlfelder
Diskussionen zu diesem Thema beginnen. Tatsächlich gibt es keinen großen Unterschied, ob man den Standardwert verwendet oder stackoverflow
Es gibt keine besonderen Vorteile und Nachteile. NULL
-Schnittstelle nicht ganz klar, aber es ist sehr restful >. ReferenzJava
easy
setPropertyInclusion
Versuchen Sie NULL zu vermeiden
Normalerweise ist es am besten, die Spalte als NOT NULL anzugeben, es sei denn, Sie müssen wirklich NULL-Werte speichern, wenn die Spalte beim Definieren der MySQL-Tabelle nicht als NOT NULL angegeben wird.
Es ist für MySQL schwieriger zu optimieren, wenn die Abfrage Spalten enthält, die NULL sein können. Da Spalten NULL sein können, sind Indizes, Indexstatistiken und Wertvergleiche komplizierter
Spalten, die NULL sein können, belegen mehr Speicherplatz und erfordern eine spezielle Verarbeitung in MYSQL.Wenn NULL-fähige Spalten indiziert werden, erfordert jeder Indexdatensatz ein zusätzliches Byte, was sogar dazu führen kann, dass ein Index fester Größe (z. B. ein Index mit nur einer Ganzzahlspalte) im MyISAM-Index eine variable Größe erhält
Im Allgemeinen ist die Leistungsverbesserung, die durch die Änderung einer NULL-fähigen Spalte in NOT NULL erzielt wird, relativ gering, sodass diese Situation beim Optimieren nicht zuerst geändert werden muss, es sei denn, es wird festgestellt, dass dies zu Problemen führen wird
Wenn Sie jedoch vorhaben, einen Index für die Spalte zu erstellen, sollten Sie vermeiden, die Spalte als NULL zu gestalten. Natürlich gibt es Ausnahmen. Beispielsweise verwendet InnoDB ein separates Bit zum Speichern von NULL-Werten, was eine gute Speicherplatzeffizienz für spärliche Daten bietet. Dies gilt nicht für MyISAM.
(Sparse-Daten: bezieht sich darauf, dass viele Werte NULL sind und einige Werte nicht NULL sind)
Ich persönlich denke, es hängt hauptsächlich von Ihrer Positionierung auf Null ab. Wenn es sich bei der Positionierung um einen abnormalen Fehler handelt, der nicht auftreten sollte, wird empfohlen, ihn auf Null zu setzen. Wenn die Positionierung normal und möglich ist, ist es besser um es auf '' zu setzen.