2012-01-27 18 views
0

MySqlを使用する。私はユーザーのテーブルを持っており、列の1つにユーザーのランクを格納する必要があります。アプリケーションはランクを決定し、それは符号付き浮動小数点数になります。ランクの例は次のようになります。並べ替えとインデックス付けBigintまたはFloatとしてランク付け

7732.5366604 
7733.0252967 
7740.8813879 
-7736.5642667 
-42.0223467 
81121.3647382 

したがって、私は基本的に常に「。」の後に少なくとも7つの場所を持っています。番号は署名されています。

このフィールドにインデックスを作成し、それをORDER BYで作成する必要があります。

私が理解から

、私は2つの選択肢があります。

  1. 店舗番号最も適切なMySQLのタイプであるとして(フロート?)

  2. 形式のドットを除去するための値を(中アプリケーション層)、それを-7736.5642667が-77365642667になるように符号付きbigintとして格納します。私はの面でより速くなり2のどちら思ったんだけど234.34565は234.3456500になり、その後2343456500

なる:何らかの理由で、私はドットの後に7ヶ所を持っていなかった場合ように、私は、ゼロを追加します格納、索引付けおよびソートが含まれます。

ありがとうとありがとうございます。

答えて

0

インデックスの背後にあるアルゴリズムは、intとfloatのインデックスの違いでわかりませんが、大きなデータセットではベンチマークを行います。パフォーマンスに差がない場合は、それはあなたの数字なので浮動小数点数を使用し、書式設定を行う必要はありません。

関連する問題