Mysql 使用哪种数据类型存储分数?

Mysql 使用哪种数据类型存储分数?,mysql,sql,sqldatatypes,Mysql,Sql,Sqldatatypes,我有一些值,如3/5、90/100等 我必须将这些值存储在数据库中的不同列中 我不清楚要使用哪种数据类型来实现此目的;插入和选择操作哪个更快?这取决于您需要信息做什么 如果存储用于计算和存储,则计算结果(0.92而不是92/100),并将其存储为十进制(1,5)。但是,如果要显示它,就不能轻松地向后计算它 如果将其存储为以后显示,但再也不能修改(或至少不能快速修改),则可以将其存储为varchar,但这将中断排序 或者您可以将不同的元素(正数、负数、总数等等)存储为十进制(5,0),并在使用时显

我有一些值,如3/5、90/100等

我必须将这些值存储在数据库中的不同列中


我不清楚要使用哪种数据类型来实现此目的;插入和选择操作哪个更快?

这取决于您需要信息做什么

如果存储用于计算和存储,则计算结果(
0.92
而不是
92/100
),并将其存储为
十进制(1,5)
。但是,如果要显示它,就不能轻松地向后计算它

如果将其存储为以后显示,但再也不能修改(或至少不能快速修改),则可以将其存储为
varchar
,但这将中断排序

或者您可以将不同的元素(正数、负数、总数等等)存储为
十进制(5,0)
,并在使用时显示/计算


当然,如果您希望在选择时从计算时间中获得优势,您可以将上述内容结合起来。

因为您希望保持值不变,而无需将其存储为十进制,以便以相同的方式向用户显示:


使用
VARCHAR
两个整数;分子和分母。插入/存储的速度对于任何提供分数合理表示的数据类型都几乎相同。

u的意思是5个正确答案中有3个正确答案如果知道分子和分母很重要,那么您可能会看到一个小整数对。但是如果您需要快速获得seo_分数,为什么不计算它并将其保存为十进制(5,2)。这样你的查询就不会有计算的开销。我从其他脚本得到的seo分数是92/100,我不想操纵它,我只想以同样的方式存储和显示它。请建议我最好的方法。谢谢你的回复,我有一个网站的seo分数92/100,这是从一些php脚本计算出来的,我想以同样的方式存储它,我不做任何更改,当用户需要它时,我必须以92/100的方式显示它,所以,这很容易理解。抵制使用字符串作为数字信息的诱惑。你,或者你的未来,或者你的继任者会后悔的。“从许多工作中学到了很多东西。”迈克尔·柯伦特,这要看情况而定。我永远不会单独使用它,但如果选择时间很关键(而且你正在寻找纳米级),它是值得的。我认为在这种情况下是不合适的。但是奥托,我对运营方案知之甚少。在什么情况下这是个好主意(什么时候不是!)没有进一步的评论,这不是个好主意。@AngeloNeuschitzer因为不需要对搜索引擎优化分数进行数学运算,运营方案只希望它以相同的格式显示给用户。将其存储在
VARCHAR
中将以与插入时完全相同的格式保存。