Google Cloud Spanner recommends gegen monoton steigende Ganzzahlen für Primärschlüssel. Dies ist ein perfekter Sinn für Top-Level-Tabellen, da es Hotspots erstellen würde. Aber was ist mit verschachtelten Tabellen? Sie werden trotzdem auf demselben Knoten gespeichert. Sie werden auch in einer sortierten Reihenfolge gehalten, so dass die Verwendung von UUID oder einer anderen zufälligen ID suboptimal erscheint, insbesondere wenn sie auch in der sortierten Reihenfolge abgerufen werden.Autoinkrement in Google Cloud Spanner
Ist das Lesen der Max-ID und das Speichern von MaxId + 1 für eine neue Zeile die richtige Lösung hier?
Danke für die Antwort. Was ist die beste Vorgehensweise, um die steigenden Zahlen in den Interleaved-Tabellen zu verwenden? Ist es einfach: max = lesen ("SELECT MAX (SubId) VON SubTable WHERE ParentId = ..."); schreiben ("INSERT INTO SubTable (SubId, ...) VALUES (" + (max + 1) + ", ...)") ? –
Im Allgemeinen ist es immer noch eine gute Idee, UUIDs mit einer Spalte für sequenzielle IDs bei Bedarf zu vermeiden und zu verwenden. Es gibt viele Gefahren, die dort lauern, wie zum Beispiel dafür sorgen, dass Sie es in einer Transaktion tun, was passiert, wenn der neueste (und maximale) Wert gelöscht wird - können Sie es wiederverwenden oder nicht ?. Es ist wahrscheinlich besser, eine andere Tabelle zu verwenden, um den Zähler zu speichern und sicherzustellen, dass Sie über entsprechende Transaktionen verfügen. –