我应该为我的列使用什么数据类型?[MySQL]

我应该为我的列使用什么数据类型?[MySQL],mysql,database-design,Mysql,Database Design,我正在工作的内容管理系统。我将有一个列来保存用户内容(HTML)的主体,我不太确定使用哪种列类型。我不想武断地指定最大长度,但我不知道使用长文本或BLOB字段是否过火 也许有人可以给我一点建议,或者给我指点一些关于这类事情的“最佳实践”文章的方向:) 非常感谢您提供的任何帮助。使用LONGTEXT以便您可以搜索它。您应该对HTML进行GZip和Base64编码,然后将其存储在文本列中。我建议您阅读,以便了解每个字段的大小限制。之后,您可以根据您对应用程序的理解选择是否允许更多 文本 最大长度为6

我正在工作的内容管理系统。我将有一个列来保存用户内容(HTML)的主体,我不太确定使用哪种列类型。我不想武断地指定最大长度,但我不知道使用长文本或BLOB字段是否过火

也许有人可以给我一点建议,或者给我指点一些关于这类事情的“最佳实践”文章的方向:)


非常感谢您提供的任何帮助。

使用LONGTEXT以便您可以搜索它。

您应该对HTML进行GZip和Base64编码,然后将其存储在文本列中。

我建议您阅读,以便了解每个字段的大小限制。之后,您可以根据您对应用程序的理解选择是否允许更多

文本 最大长度为65535(216–1)个字符的文本列

中文本 最大长度为16777215(224–1)个字符的文本列

长文本 最大长度为4294967295或4GB(232–1)字符的文本列

我认为你应该设定一些限制。例如,可能值得研究其他软件(如Word Press)的功能


至于chaospandio:GZip是二进制的,如果你要这样做,他应该使用BLOB来代替。

如果搜索是一个要求,这将是最好的选择。谁将搜索一个讨厌的HTML块?MySQL什么时候开始要求字段是LONGTEXT来搜索?还要记住文本列(如varchar列)具有可变长度。这意味着它只会占用字段中包含的空间量(与CHAR不同)。它使用的唯一空间是一个2字节的前缀,以便数据库知道字段的总大小?我会为了压缩而这样做,还是我缺少了其他一些优势,我会说压缩是一个巨大的优势。您可以将数据库到web服务器的传输时间减少一半(可能有些夸张,但速度有所提高)。另外,随着时间的推移,HTML所需的存储空间将大大减少。