繁体   English   中英

MySQL的,多列或VARCHAR列?

[英]mysql, multiple columns or a varchar column?

我必须存储大约10个int,是否最好使用10个int列或仅将varchar列的值用字符分开?

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

数据的一个例子可以是:

在(论坛中的)主题行中的评论数| 票数| 参加人数

这些是仅需要缓存的数据,不需要经常更新。

我将使用分隔的整数。 几个原因:

  • 这可能是更干净的解决方案
  • 使您可以灵活地在以后需要时添加索引
  • 您可以按他们排序
  • 无需拆分即可实际使用

为了提供一些更复杂的答案,需要更多地了解您的问题。

编辑:不要相信您会节省空间。 INT始终为4个字节,数字为varchar,每个数字+分隔符占1个字节。 因此,如果您存储的数量大于999,则实际上将释放空间。

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

我希望单独存储值,但是它主要取决于它是哪种数据。 在特定情况下,最好将它们存储在一起。

10个int列-如果仅需要显示则排除在外

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

分享并享受。

10个整数列将占用更少的空间。 1个整数= 4个字节(除非它是long int)。 因此,无论输入什么内容,它都会不断地增加40个字节,而varchar可能会增长,而且您还需要为定界符浪费一个字节。

使用单独的整数列。

参数:
-整数值在数据库中占用的容量少于其字符串表示形式
-将来,您将可以对任何这些列进行搜索/过滤/求和/平均值运算。
-这将确保保存的数据为整数,任何尝试保存其他内容的操作都会引发错误。

在某些特殊情况下,将数据保存为字符串可能更准确,但是我们需要更多的知识来进行判断。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM