Hallo,
zur Benutzung von UUIDs oder GUIDs möchte ich nur nebenbei bemerken, dass die Vergabe quasi pseudozufällig erfolgt. Es gibt keine Garantie, dass nach Vergabe eine UUID #1 die darauf vergebenen UUIDs (immer) grösser oder kleiner sind. Das hat Nachteile bei der Verwendung solcher Konstrukte in einem Index, genannt Fragmentierung. Weniger beim Lesen als beim Schreiben. Darüber hinaus sind UUIDs ein recht grosser Datentyp. Wenn man also nur 2 Milliarden Ids braucht (und 2 Mia Datensätze in einer Tabelle ist schon nicht übel), dann spart man mit Integer (4 Byte) gegenüber UUIDs (16 Byte) also 12 Byte. Das macht etwa 24 000 000 000 Byte ... wiederum etwa 20GB, die weniger gespeichert und gesichert werden müssen und auch 20 GB, die weniger in den Ram gelesen werden müssen.
Falls das DBMS kein Feature für Sequenzen hat, kann man sich mithilfe von einer einzigen Tabelle (die unter anderem niemals auch nur einen Datensatz haben wird) mit einer Auto-Increment Spalte und Transaktionen selbst eine basteln. Der Overhead für den Rollback des Inserts ist minimal.
Cheers, Frank