【发布时间】:2010-06-21 13:27:00
【问题描述】:
应该在通常存储短字符串(10 到 40 个字符之间)但最终会存储大量文本(500 到 1000 个字符)的列中使用哪种 DataType? 包含此列的表只有三列。其中两个组成一个复合键,并且 另一个是有问题的列。 我不必根据此列进行排序或排序。
那么,我应该选择什么数据类型?
提前致谢。 对不起我的英语。
【问题讨论】:
应该在通常存储短字符串(10 到 40 个字符之间)但最终会存储大量文本(500 到 1000 个字符)的列中使用哪种 DataType? 包含此列的表只有三列。其中两个组成一个复合键,并且 另一个是有问题的列。 我不必根据此列进行排序或排序。
那么,我应该选择什么数据类型?
提前致谢。 对不起我的英语。
【问题讨论】:
这是VARCHAR (1000)(您可能需要它大于 1000)和仅使用 TEXT 之间的折腾。我不知道你是否需要NOT NULL,但如果你需要,显然添加它。
请注意,如果您将其设为VARCHAR,则您对列大小施加了明确的限制。仅当您确定不会超过该大小时才使用VARCHAR。如果您可能有异常值,请使用 TEXT。
【讨论】:
VARCHAR(1000)
【讨论】:
当我本可以使用 TEXT 时,我仍然选择 VARCHAR。
例如,我有一个电话号码表:
number VARCHAR(50) ,
description VARCHAR(100) ,
通常“description”只是“cell”或“home”之类的东西,但有时你想输入类似“姐姐的手机,不要在紧急情况下打电话,因为她在晚上工作!” -- 那你就在小河上。
如果您使用 VARCHAR,我将投入的最大数量远高于您对可能出现的任何情况的想象,即便如此,您也无法预测所有用例。此外,当输入文本长度大于最大允许长度时,您仍然需要编写代码处理代码。
为什么在你不需要的时候设置约束?如果不需要,为什么还要编写处理代码?性能提升真的那么大吗?
【讨论】: