mysql,多列还是varchar列?

时间:2011-03-29 13:01:41

标签: mysql performance

我必须存储大约10个int,使用10个int列或者只有一个字符分割的varchar列whit值更好吗?

我永远不需要索引这些列,也不需要进行数学运算。

数据的例子可能是:

在一个帖子的一行中(论坛) 评论数量|票数|部分人数

这些数据只需要缓存,不需要经常更新。

7 个答案:

答案 0 :(得分:4)

我会使用单独的整数。几个原因:

  • 这可能是更清洁的解决方案
  • 使您可以根据需要灵活地添加索引
  • 您可以按他们排序
  • 无需将其拆分以供实际使用

有必要更深入地了解您的问题,以提供更复杂的答案。

编辑:不相信你会节省空间。 INT总是4个字节,数字为varchar,每个数字+分隔符需要1个字节。因此,如果您存储的数字大于999,您实际上会占用空间。

答案 1 :(得分:1)

取决于您的需求。使用int列,性能更好,varchar节省了存储空间。

答案 2 :(得分:1)

我更喜欢单独存储值,但主要取决于它是什么类型的数据。在特定情况下将它们存储在一起可能更好。

答案 3 :(得分:0)

10个int列 - 如果仅需要显示

,则排除

答案 4 :(得分:0)

如果您需要访问各个整数,则应将它们存储在单独的字段中。根据预期用途,最好有一个单独的整数表,但鉴于您的问题,很难确定这是否适用。

分享并享受。

答案 5 :(得分:0)

10个整数列占用的空间更少。 1整数= 4个字节(除非它是长整数)。所以不管输入什么都是40个字节,而varchar可以增长加上你需要为分隔符字符浪费一个字节。

答案 6 :(得分:0)

使用单独的整数列。

参数:
- 整数值在数据库中占用的体积小于其字符串表示
- 将来您可以在任何这些列上进行操作搜索/过滤/求和/平均 - 它将确保保存的数据为整数,任何保存其他内容的尝试都会产生错误。

它们是一些特殊的情况,将数据保存在字符串中可能更准确,但我们需要了解更多来判断它。