0

我在表格中有一个列需要保存“正”和“负”值或“无值”。我必须非常总结数百万行!经常显示给用户。我的问题是:哪个 sum 运算会更快。

  1. 如果我用 0 标记“无价值”,用 1 标记“正”,用 -1 标记“负”
  2. 如果我用 0 标记“无价值”,用 1 标记“正”,用 2 标记“负”

我的首选选项是 1。因为它可以节省我额外处理 php 的工作量,并且会立即显示正确的结果。问题是在数据库中使用符号(-1,0,+1)的天气会减慢它的速度,或者就像我不使用符号(0,1,2)一样。请记住,我将拥有数百万行,并且会定期对其进行总结。谢谢你。

4

1 回答 1

1

1)因为它会给你直接的结果!

不,只要列的类型定义为有符号整数或实数,符号就不会影响性能...

你的问题应该是关于数据类型的,一个 int 是首选,不太喜欢的是一个浮点数,最不喜欢一个字符串,虽然 mysql 可以对字符串求和,但转换会很慢。

此外,假设该表仅包含其他两个表之间的一些交叉引用和向上/向下投票,如果您仅在投票时删除所有 0 值并插入行,那将快得多。如果您正在缓存值并使用触发器来更新缓存列引用的表,那么您可以更快地进行投票/取消投票。

一个自动更新投票总和的小提琴示例,http: //sqlfiddle.com/#!2/044c3/1

于 2012-10-08T21:37:18.057 回答