首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql列数据类型对于维护效率重要吗?

问mysql列数据类型对于维护效率重要吗?
EN

Stack Overflow用户
提问于 2010-11-23 00:12:57
回答 5查看 340关注 0票数 3

我是否需要仔细选择mysql数据库列的数据类型,或者是否可以将内容设置为varchar(99999)而不限制大小而不影响效率?

谢谢:)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-23 02:22:06

毫无疑问,对于非平凡的数据库,数据类型是非常重要的()。

对于mysql功能(例如时间、字符串或聚合函数),选择正确的数据类型非常重要。

对于模式功能(例如连接),选择正确的数据类型很重要。

为了提高性能,每个字段的每个字节都很重要。

一个包含所有长可变字符的数据库将是令人遗憾的。

DBA的存在是有原因的。:)

票数 2
EN

Stack Overflow用户

发布于 2010-11-23 00:17:05

选择表示要存储的数据的数据类型。如果要存储数字,请使用专为存储数字而设计的数据类型。如果要存储日期,请使用为存储日期而设计的数据类型。

如果您的所有数据实际上都是文本,那么对于长度可能变化的列选择VARCHAR,对于长度永远不变的列或者尾随空格不重要的列选择CHAR。VARCHAR需要一个额外的字节来存储字段的长度,并且只会带来很小的性能损失,因为长度是可变的,这会在提取或存储数据时创建更多的步骤。

请注意,如果将VARCHAR列用作索引的一部分,则可能需要对它们施加大小限制,因为MySQL上的索引的最大大小是1000字节。因此,如果将所有列都设为VARCHAR(100),则只能围绕三个这样的字段创建复合索引。

(注意,类型VARCHAR(99999)在MySQL中不存在-- VARCHAR字段的最大长度是255,因为只有一个字节用于存储记录中每个VARCHAR的长度。)

票数 3
EN

Stack Overflow用户

发布于 2010-11-23 00:18:32

我发现,在设计新表时,最好准确地声明列类型。例如,它有助于确保在应该只有数字的列中只输入一个数字,就像在价格中一样。如果您的代码试图处理美元金额,但它检索到'Asd$%*@)‘,因为用户可以在中输入任何自由格式的字符串,您的代码会做什么?

通过准确地声明列类型,可以确保检索的数据与请求的数据类型相同,而不必执行任何繁琐的文本分析和错误检查。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4247531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档