我想创建一个个人笔记数据库,用HTML或文本存储笔记很长。 VARCHAR
和TEXT
字段之间有什么区别,使用哪个字段会更有效?
我认为VARCHAR
的最大值是65535个字符,如果我包含的内容大于此值,我无法绕过头脑。我想知道某种数据类型是否可以自动压缩,虽然我认为它不那么简单(因为它在实际使用中占用了太多的CPU时间)。
答案 0 :(得分:10)
如果您不确定文本是否总是短于65535个字符,则不要冒使用varchar
的风险。我认为您绝对应该使用mediumtext
或longtext
类型,但为了提高性能,请将它们放入单独的表中。例如,创建表Notes
,其中包含注释ID,标题,创建日期和创建它的用户以及NotesText
表格,该表格将与Notes
相关联,但仅包含注释ID和您的文字栏。这样可以防止对文本类型列进行查询,并在不需要时从数据库中检索它。
答案 1 :(得分:2)
AFAIR TEXT限制为65k字符,MEDIUMTEXT限制为1600万,LONGTEXT最大限制为4GB: - )
答案 2 :(得分:2)
VARCHAR最大长度不是65535字节;行的最大长度是该字节数,VARCHAR的最大长度取决于表中的其他列。因此,如果您可能需要那么多字符,则需要TEXT或BLOB列。它们分别保存在磁盘上,因此速度较慢(不是CPU使用情况,而是总时间)。