/ / Was ist der Zweck von UNIQUE in MySQL (InnoDB) - mysql, unique

Was ist der Zweck von UNIQUE in MySQL (InnoDB) - mysql, einzigartig

Für mich die UNIQUE Das Schlüsselwort dient der besseren Strukturierung Ihrer Tabelle (beiseite setzen PRIMARY KEY, die zu Identifikationszwecken dient). Zum Beispiel Dateien. Wenn Sie nicht dieselbe Datei zur Datenbank hinzufügen möchten, können Sie den SHA-2-Hash-Schlüssel als UNIQUE KEY. SHA-2 umfasst jedoch 512 Zeichen, und InnoDB hat ein Limit von 255. Warum hat MySQL dieses Limit und wie verwendet man größere, zuverlässigere, eindeutige Schlüssel wie SHA-2?

Antworten:

3 für die Antwort № 1

SHA2-512 liefert 512 Bit, also 64 Byte. Oder char (128) in hex.

Die eindeutige Indexschlüssellänge beträgt für MyISAM 1000 Byte und für InnoDB 767 in MySQL 5.5.

Unique wird verwendet, um die natürliche Eindeutigkeit zu erzwingen, wenn Sie einen AUTO_INCREMENT-Surrogat-Primärschlüssel wählen. Oder Superkey-Einzigartigkeit, wenn Sie möchten Untertypen erzwingen. usw.

Bearbeiten:

Um die Eindeutigkeit über die LOB-Werte zu erzwingen, müssen Sie sie nur hashieren und eine Einschränkung hinzufügen. Wenn Sie genug Zeilen für ein messbares Kollisionsrisiko haben, warum haben Sie dann so viele LOB-Werte in der Datenbank?


1 für die Antwort № 2

In MySQL dient UNIQUE zur Indizierung. Verwenden Sie es besser nicht, um Textfelder eindeutig zu kennzeichnen.

Ich überprüfe immer Datenintegrität und Eindeutigkeit in der Anwendung, nicht MySQL.