这个问题基于两件事表现 and size
使用 TEXT 或 VARCHAR 哪种 DATATYPE 更好?基于哪些性能会影响哪些性能会得到改善?
这取决于你用它做什么。我不想给出如此笼统的答案,但这是事实。一般来说,尝试尽可能具体地获取数据类型。如果您的字符串永远不会超过字符数上限,那么请使用VARCHAR
因为这样会更有效率一点。如果您需要更多空间,请选择TEXT
。如果您不确定文本将占用多少空间,您可能应该选择TEXT
;性能差异不是很大,而且最好是面向未来,而不是在您的需求发生变化时冒着必须更改它的风险。只是我的两分钱。
Pitarou 在评论中指出,如果 MySQL 为您的查询创建临时表(请参阅this http://dev.mysql.com/doc/refman/5.5/en/internal-temporary-tables.html), TEXT
列不会存储在内存中,而必须从磁盘读取,这要慢得多。 (Source http://dev.mysql.com/doc/refman/5.5/en/blob.html,页面底部。)不过,这对于大多数查询来说并不重要。
如果有人想知道 PostgreSQL 相比如何,我发现这个基准 http://www.depesz.com/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/这表明 CHAR、VARCHAR 和 TEXT 的性能都同样出色。因此,如果您使用 Postgres,那么使用什么类型并不重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)