在Rails中,字符串和文本有什么区别?

37 浏览
0 Comments

在Rails中,字符串和文本有什么区别?

我正在使用Rails创建一个新的Web应用程序,我想知道stringtext之间有什么区别?应该在什么情况下使用每个?

admin 更改状态以发布 2023年5月22日
0
0 Comments

如果你在使用PostgreSQL,尽可能使用文本(text),除非有大小约束,因为文本(text)和varchar相比没有性能惩罚。

除了在使用空白填充类型时增加了存储空间以及在存储到长度受约束的列时需要额外的几个CPU周期来检查长度外,这三种类型之间没有性能差异。尽管在其他数据库系统中,character(n)有性能优势,但在PostgreSQL中却没有这样的优势;事实上,由于其额外的存储成本,character(n)通常是最慢的。在大多数情况下,应使用text或character varying代替。

PostgreSQL手册

0
0 Comments

两者的区别在于在查询语言中如何将符号转换为相应的列类型。

在MySQL中,字符串被映射为VARCHAR(255)

:string |                   VARCHAR                | :limit => 1 to 255 (default = 255)  
:text   | TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT2 | :limit => 1 to 4294967296 (default = 65536)

参考:

https://hub.packtpub.com/working-rails-activerecord-migrations-models-scaffolding-and-database-completion/

应该在何时使用每种类型?

一般而言,对于短文本输入(用户名、电子邮件、密码、标题等),使用:string ,对于预期输入较长的文本(例如描述、评论内容等),使用:text

0