使用MySql。我有一个用户表,需要在其中一列中存储用户的排名。应用程序确定排名,它恰好是签名浮点数。排名的例子是:
7732.5366604
7733.0252967
7740.8813879
-7736.5642667
-42.0223467
81121.3647382
所以基本上我总是在"之后至少有七个位置。"并且号码已签名。
我需要在这个字段上创建索引并按顺序创建它。
根据我的理解,我有两个选择:
将数字存储在最合适的mysql类型中(float?)
格式化值以删除点(在应用程序层中)并将其存储为带符号的bigint,以便-7736.5642667将成为-77365642667。如果由于某种原因我在点之后没有7个位置,我会附加零,这样:234.34565将变为234.3456500然后变为2343456500
我想知道两者中哪一个在存储,索引和排序方面会更快。
感谢并感谢任何意见。
答案 0 :(得分:0)
我不了解索引背后的算法在索引int和float之间的区别,但我会对大数据集进行基准测试。如果性能没有差异,那么我会使用float,因为这是你的数字而你不需要做任何格式化。