/ / Sortowanie i indeksowanie Ranga jako Bigint lub Float - mysql, sortowanie, zmiennoprzecinkowe, sortowanie według sql

Sortowanie i indeksowanie Ranga jako Bigint lub Float - mysql, sortowanie, zmiennoprzecinkowe, sql-order-by

Korzystanie z MySql. Mam tabelę użytkowników i muszę przechowywać pozycję użytkownika w jednej z kolumn. Aplikacja określa pozycję i okazuje się, że jest to liczba zmiennoprzecinkowa. Przykładem rang byłoby:

7732.5366604
7733.0252967
7740.8813879
-7736.5642667
-42.0223467
81121.3647382

Więc w zasadzie zawsze mam co najmniej siedem miejsc po „.” i numer jest podpisany.

Muszę utworzyć indeks w tym polu i uporządkować według niego.

Z tego, co rozumiem, mam 2 możliwości:

  1. Zapisz numer tak, jak jest w najbardziej odpowiednim typie mysql (liczba zmiennoprzecinkowa?)

  2. sformatuj wartość, aby usunąć kropkę (wwarstwa aplikacji) i zapisz ją jako podpisaną bigint, aby -7736.5642667 stał się -77365642667. Gdybym z jakiegoś powodu nie miał 7 miejsc po kropce, dodałbym zera, aby: 234,34565 stałoby się 234,4556500, a następnie 2343456500

Zastanawiam się, który z nich byłby szybszy pod względem przechowywania, indeksowania i sortowania.

Dziękujemy i doceniamy wszelkie uwagi.

Odpowiedzi:

0 dla odpowiedzi № 1

Nie rozumiem algorytmu stojącego za indeksemwarunki różnicy między indeksowaniem int i float, ale zrobiłbym test porównawczy na dużym zestawie danych. Jeśli nie ma różnicy w wydajności, użyłbym liczby zmiennoprzecinkowej, ponieważ to twoje liczby i nie musisz wykonywać żadnego formatowania.