【问题标题】:serializable columns on database should be of type "string" or "text"?数据库上的可序列化列应该是“字符串”或“文本”类型?
【发布时间】:2014-02-27 07:53:14
【问题描述】:

我需要在我的数据库中创建一个包含序列化数据的列。我应该为此选择一个字符串列还是一个文本列?

起初我会选择文本,因为字符串大小有限,但再想一想,它会对性能产生影响吗?我应该如何在字符串和文本之间做出选择?

【问题讨论】:

    标签: ruby-on-rails database serialization


    【解决方案1】:

    除非您 100% 确定序列化数据将小于数据库中 VARCHAR 列的最大大小,否则您应该使用文本。文本列也有限制,具体取决于您的数据库,但通常应该足够大。

    如果您使用的是 Postgresql,我建议您看看 HStore。

    【讨论】:

    • 关于这个主题的更多信息:SQL 表写起来很慢,如果你索引的话,读起来很快。索引只能使用 VARCHAR 或更小的字段,而不是 TEXT - 有时,前 256 个字符除外。因此,TEXT 字段的性能影响不会影响最慢的操作,即数据查找。所以对序列化数据使用 TEXT。
    • 感谢您的回答和评论。对于 HStore 和性能考虑,两者都非常有用。
    猜你喜欢
    • 2018-09-12
    • 2016-12-12
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2020-03-15
    相关资源
    最近更新 更多