gpt4 book ai didi

ruby-on-rails - string vs text using Rails 3.2.* and Postgres - 我应该总是只使用文本吗

转载 作者:行者123 更新时间:2023-11-29 11:38:41 24 4
gpt4 key购买 nike

我采用了一个 Rails 应用程序(Rails 3.2 和 Postgres 9.4),它有一些 Rails 字符串,我们已经超过了 255 个限制。这个应用程序以前使用 MySQL 而不是 Postgres 作为后备存储。我的理解是 postgres 处理字符串和文本的方式相同。它是否正确?在将所有 Rails 字符串迁移到文本之前,我们应该注意哪些限制?

性能问题有点令人担忧,但不是主要问题。

最佳答案

来自fine manual :

Tip: There is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) has performance advantages in some other database systems, there is no such advantage in PostgreSQL; in fact character(n) is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead.

他们谈论的三种类型是char(n)varchar(n)text。提示本质上是说:

  • char(n) 由于空白填充和必须检查长度限制而最慢。
  • varchar(n) 通常在中间,因为需要检查长度约束。
  • text(又称 varchar,没有 n)通常是最快的,因为没有额外的开销。

除了 char(n) 的空白填充和 char(n)varchar(n) 的长度检查外,它们'我们在幕后的处理都是一样的。

对于 ActiveRecord,t.stringvarchart.texttext。如果您对字符串没有任何硬性长度限制,则只需将 t.text 与 PostgreSQL 一起使用即可。

关于ruby-on-rails - string vs text using Rails 3.2.* and Postgres - 我应该总是只使用文本吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com