/ / Sortieren und Indizieren Rang als Bigint oder Float - MySQL, Sortieren, Floating-Point, SQL-Order-By

Sortier- und Indexierungsrang als Bigint oder Float - mysql, Sortierung, Gleitkomma, SQL-Reihenfolge

Verwenden von MySQL. Ich habe eine Tabelle mit Benutzern und muss den Rang eines Benutzers in einer der Spalten speichern. Die Anwendung bestimmt den Rang und es handelt sich zufällig um einen signierten Float. Beispiele für Ränge wären:

7732.5366604
7733.0252967
7740.8813879
-7736.5642667
-42.0223467
81121.3647382

Also habe ich nach "." Grundsätzlich immer mindestens sieben Stellen. und Nummer ist signiert.

Ich muss einen Index für dieses Feld erstellen und danach ordnen.

Soweit ich weiß, habe ich zwei Möglichkeiten:

  1. Speichern Sie die Nummer so, wie sie für den am besten geeigneten MySQL-Typ geeignet ist (float?)

  2. Formatieren Sie den Wert, um den Punkt zu entfernen (inAnwendungsebene) und speichern Sie es als signiertes Bigint, sodass -7736.5642667 zu -77365642667 wird. Wenn ich aus irgendeinem Grund keine 7 Stellen nach dem Punkt hätte, würde ich Nullen anhängen, so dass: 234.34565 zu 234.3456500 und dann zu 2343456500 wird

Ich frage mich, welcher der beiden schneller speichern, indizieren und sortieren würde.

Vielen Dank und danke für jede Eingabe.

Antworten:

0 für die Antwort № 1

Ich verstehe den Algorithmus hinter dem Index in nichtIn Bezug auf den Unterschied zwischen der Indizierung von int und float würde ich jedoch einen Benchmark für Big Data-Sets durchführen. Wenn es keinen Unterschied in der Leistung gibt, würde ich float verwenden, da dies Ihre Zahlen sind und Sie keine Formatierung vornehmen müssen.