当前位置:  开发笔记 > 编程语言 > 正文

哪个DATATYPE最好使用TEXT或VARCHAR?

如何解决《哪个DATATYPE最好使用TEXT或VARCHAR?》经验,为你挑选了3个好方法。

这个问题基于两个方面的性能规模

哪个DATATYPE最好使用TEXT或VARCHAR?基于将影响和将影响的表现?



1> Sasha Chedyg..:

这取决于你使用它的是什么.我讨厌给出这样一个通用的答案,但这是真的.通常,尝试尽可能具体地获取数据类型.如果你的字符串永远不会超过字符的某些上限,那么请继续使用,VARCHAR因为它会更有效率.如果您需要更多空间,请继续使用TEXT.如果你不确定你的文本将占用多少空间,你可能应该选择TEXT; 性能差异不是很大,并且最好是面向未来,而不是在您的需求发生变化时必须稍后更改它的风险.只是我的两分钱.


Pitarou在评论中指出,如果MySQL为您的查询创建一个临时表(请参阅此内容),则TEXT列将不会存储在内存中,并且必须从磁盘读取,这要慢得多.(来源,页面底部.)但这对大多数查询都无关紧要.

如果有人想知道PostgreSQL如何比较,我发现这个基准测试表明CHAR,VARCHAR和TEXT都表现得同样出色.因此,如果您使用的是Postgres,那么您使用的是哪种类型并不重要.


MySQL文档声明TEXT可能较慢,因为MEMORY存储引擎不支持此数据类型,因此如果您真的需要它,则应该只使用TEXT.http://dev.mysql.com/doc/refman/5.5/en/blob.html

2> 小智..:

从V 5.0.3开始,VARCHAR的限制从0-256增加到0-65,535(取决于最大行大小(65,535字节,在所有列之间共享)和使用的字符集.)

参考.http://dev.mysql.com/doc/refman/5.0/en/char.html

如果您使用固定64k长度的TEXT,即使您需要较小的限制

因此,最好使用VARCHAR,其限制高于TEXT.如果要求超过64K,请相应使用MEDIUMTEXT或LONGTEXT.



3> Kai Noack..:

针对TEXT表的查询总是比针对VARCHAR表的查询慢3倍(平均值:VARCHAR表为0.10秒,TEXT表为0.29秒).差异是100%可重复的.

基准来自http://forums.mysql.com/read.php?24,105964,105964

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有