Der Primärschlüssel in MySQL ist unterteilt in: 1. Automatische Inkrementierungssequenz; 2. Durch die UUID-Funktion generierter Zufallswert; 4. Generieren Sie einen ähnlichen automatischen Inkrementierungswert auf einer Reihe von Mechanismen, wie zum Beispiel einem Sequenzgenerator.
(für InnoDB-Engine) Unsere tatsächliche Produktionsumgebung kann vier Arten von Attributen als Primärschlüssel verwenden:
(1). Sequenz;
(2). Von der UUID()-Funktion generierter Zufallswert; vom Benutzer registrierter Zeichenfolgentyp, im Allgemeinen Länge: 40 Zeichen >
(4). Generieren Sie automatisch inkrementierende Werte basierend auf einer Reihe von Mechanismen, z. B. Sequenzgeneratoren. Anschließend analysieren wir die Vor- und Nachteile jeder dieser vier Arten von Attributen Primärschlüssel. :(1)Auto-Inkrementierungssequenz
: Fügen Sie neue Werte in einem sequentiellen Muster von klein nach groß oder von groß nach klein hinzu; Der Primärschlüsselwertvergleich ist ebenfalls relativ klein und wird im Allgemeinen auf den 4-Byte-INT-Typ oder 8-Byte-BIGINT-Typ eingestellt. Wenn Sie die Daten horizontal aufteilen möchten, können Sie auch zwei Parameter der mysqld-Instanz festlegen: Der einzige Nachteil der Auto-Inkrement-Sequenz besteht darin, dass es in der 5.0-Serie zu Engpässen bei gleichzeitigem Schreiben auf Tabellenebene kommt Die 5.1-Serie hat Verbesserungen vorgenommen und dieses Problem besteht grundsätzlich nicht Ein Teil des auf demselben Server generierten Werts beträgt 36, berechnet gemäß der UTF8-Codierung, und der belegte Speicherplatz beträgt 36 Byte. Für die Unterstützung der horizontalen Datenaufteilung sind keine besonderen Einstellungen erforderlich 🎜>(3)Verwenden Sie den vom Benutzer registrierten Kontonamen, String-Typ , die Generierung seines Werts hängt von der Benutzereingabe ab. Daher werden die Daten grundsätzlich in ungeordneter Weise hinzugefügt Die Länge der Zeichenfolge ist ebenfalls variabel und kann nur durch die vorherige Technologie und die horizontale Aufteilung gesteuert werden. Es sind keine besonderen Einstellungen erforderlich Die Architektur des Sequenzgenerators
ähnelt der automatischen Inkrementierungssequenz, erfordert jedoch zusätzliche Entwicklungsarbeit und die Bereitstellung eines Drittanbieterdienstes. Dadurch kann das Problem wortvergrößernder globaler Sperren in automatischen Inkrementierungssequenzen vermieden werden. Verbessern Sie die Parallelität und unterstützen Sie die horizontale Aufteilung von Daten besser Es gibt auch andere Arten von Methoden, die durch manuelles Eingreifen gelöst werden können. Die oben genannten vier Methoden können nicht vermieden werden als Primärschlüssel und vergleichen Sie die hervorragenden Eigenschaften, die für Primärschlüssel erforderlich sind. Wenn das Problem der horizontalen Aufteilung nicht berücksichtigt wird, was zu zusätzlichen Einrichtungsproblemen führt, wird die Reihenfolge automatisch erhöht. Dies ist die beste Wahl des Primärschlüssels In dem Szenario, in dem das registrierte Konto des Benutzers eindeutig und nicht leer ist, kann es als Auswahlfeld für den Primärschlüssel verwendet werden, wenn das Problem der horizontalen Aufteilung berücksichtigt wird Es ist sehr einfach zu verwenden und zuverlässig zu implementieren. Der generierte Wert ist die beste Wahl für das PrimärschlüsselfeldDas obige ist der detaillierte Inhalt vonWas sind die Primärschlüssel in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!