Wir haben eine Datenbank, in der wir Daten in die Tabelle einfügen, wenn wir eine Bestellung von unseren Diensten erhalten.
Wir verwenden auto_increment
, um die ID zu generieren und die Bestellung mit derselben zuzuweisen. Dies ist normalerweise überall gleich.
Das Problem ist jedoch, dass diese Informationen, da sie an Drittanbieter weitergegeben werden, nachverfolgen können, wie viele Bestellungen wir pro Tag erhalten. Durch Senden einer Anfrage am frühen Morgen und Senden einer weiteren Anfrage um Mitternacht und Zählen der Differenz in der ID
.
Dies gibt Einblicke in unsere Dienstleistungen. Da es sich um ein etwas komplexes System handelt, können wir keine komplexen Operationen ausführen, die dies zufällig bestimmen können.
Meine ursprüngliche Idee ist es, auto_increment
Zahlen auf bit-zufällige Weise zu generieren .
1,2,3,4,5,67,68,69,70,71,133,134,135,136,137,189,190,191,192,193,194
Ich denke, es sollte einfach sein, da MySQL keinen Cache mehr hat. Generieren Sie die nächste Sequenz, indem Sie eine Zufallszahl anhängen.
Wie kann dies erreicht werden, ohne die Leistung zu beeinträchtigen?
quelle
SELECT * FROM Orders;
oderSELECT COUNT(*) FROM Orders WHERE Date >= CURRENT_DATE();
abrufen.UUID
stattdessen od zu verwendenAuto_Increment
.ID
aktiviert lassen und alle FKs der anderen Tabelle unberührt lassen.Antworten:
Hier ist eine Übersicht über Methoden zum Generieren zufälliger eindeutiger IDs in MySQL von Rick James: http://forums.mysql.com/read.php?24,425424,425491
Die Übersicht ist ziemlich umfangreich, gibt 5 verschiedene Strategien, listet Vor- und Nachteile für jede auf.
quelle