前端之家收集整理的这篇文章主要介绍了
在mysql中使用varchar或text作为动态字段?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个将在字段中接收不同值的表,想到一个日志表,“值”字段可以是数字,一个小字符串或一个大文本等.
所以我很奇怪我是否应该将“值”字段创建为Text或创建两个字段,一个用于小输入,如日期,数字和一些字符串,另一个仅用于文本输入.
所以,我的问题是:
这个“value”字段是否应该是一个Varchar以及其他一些“value2”作为Text或创建一个字段mysql将对此进行相应的文本处理?
我担心只创建一个Text字段对于性能来说可能是件坏事.
编辑:数字,日期时间等将在插入之前转换为字符串,这不是重点
谢谢,
乔
最佳答案
你知道最大输入量有多大吗?如果你施加一个限制,或者知道最大输入量有多大,那么你可以使用varchar(在版本< 5.0.3中为255个字符,在版本中为65,535> = 5.0.3).否则,你可能会更好地使用Text,因为它拥有更多(65,535 * 2 ^ 16-1).
作为替代方案,如果用户正在创建已经具有表格的内容(例如向日历添加事件),则可以在表格上放置“is_approved”列,仅显示已批准的列,或搜索所有内容以检查重复项.
http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html