Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:存储长笔记最有效的数据类型?_Mysql_Performance_Types - Fatal编程技术网

MySQL:存储长笔记最有效的数据类型?

MySQL:存储长笔记最有效的数据类型?,mysql,performance,types,Mysql,Performance,Types,我想创建一个个人笔记数据库,用HTML或很长的文本存储笔记。VARCHAR和TEXT字段之间有什么区别,哪一个使用起来更有效 我想VARCHAR的最大值是65535个字符,但是如果我要包含比这个更大的字符,我就无法理解了。我想知道某个数据类型是否可以自动压缩,尽管我不认为它那么简单(因为它在实际使用中会占用太多的CPU时间)。AFAIR文本限制为65k个字符,MEDIUMTEXT是1600万,而LONGTEXT的最大容量为4GB:-)如果您不确定文本是否总是短于65535个字符,则不要冒险使用v

我想创建一个个人笔记数据库,用HTML或很长的文本存储笔记。
VARCHAR
TEXT
字段之间有什么区别,哪一个使用起来更有效


我想
VARCHAR
的最大值是65535个字符,但是如果我要包含比这个更大的字符,我就无法理解了。我想知道某个数据类型是否可以自动压缩,尽管我不认为它那么简单(因为它在实际使用中会占用太多的CPU时间)。

AFAIR文本限制为65k个字符,MEDIUMTEXT是1600万,而LONGTEXT的最大容量为4GB:-)

如果您不确定文本是否总是短于65535个字符,则不要冒险使用
varchar
。我认为您肯定应该使用
mediumtext
甚至
longtext
类型,但为了提高性能,请将它们放在单独的表中。例如,创建包含注释id、标题、创建日期和创建注释的用户的表
Notes
,以及与
Notes
关联但仅包含注释id和文本列的表
NotesText
。这将防止在不需要时查询文本类型列并从数据库中检索它。

VARCHAR的最大长度不是65535字节;行的最大长度就是字节数,VARCHAR的最大长度取决于表中的其他列。因此,如果可能需要那么多字符,则需要一个文本或BLOB列。这些数据单独保存在磁盘上,因此速度较慢(不是CPU使用率,而是总时间)。

并且没有任何东西限制您在存储数据之前压缩和解压缩数据(例如,通过gzip)。在这种情况下,必须使用BLOB types.Def。我会考虑这样做,但如果不能看到文本并在查询中使用它们,那就很烦人了,不过我肯定会压缩4MB+的文件,谢谢!我发现这是最相关的答案,我很想把它放在另一张桌子上,只是为了练习效率,非常感谢。这是错误的。Mysql中的文本限制为相同的65535个字符。好的。。你已经说过了,他可以用MEDIUMTEXT来代替,但是为什么你要第三次写同样的东西呢?你认为他看不到你的答案吗?好吧,在他接受了错误的解决方案之后,他很可能不会注意到新的评论:-)无论如何,现在是正确的。