首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最佳实践MySQL数据类型列表

最佳实践MySQL数据类型列表
EN

Stack Overflow用户
提问于 2009-09-04 16:29:40
回答 3查看 6K关注 0票数 12

是否有常见应用程序的最佳实践MySQL数据类型列表。例如,该列表将包含id、ip地址、电子邮件、主题、摘要、描述内容、url、日期(时间戳和人类可读)、地理点、媒体高度、媒体宽度、媒体持续时间等的最佳数据类型和大小。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-04 18:55:55

我不知道,所以让我们开始一个吧!

数字ID/auto_increment主键:使用无符号整数。请勿使用0作为值。记住各种大小的最大值,也就是说,如果不需要40亿个值,那么不要使用int,而mediumint提供的1600万个值就足够了。

mysql:除非您特别需要超出mysql和TIME类型支持范围的日期/时间,否则请使用它们!如果您使用unix时间戳,则必须将其转换为使用内置的日期和时间函数。如果您的应用程序需要unix时间戳,您可以随时使用unix_timestamp()转换标准日期和时间数据类型。

ip地址:使用inet_aton() and inet_ntoa(),因为它可以轻松地将ip地址压缩为4个字节,并使您能够利用索引进行范围搜索。

票数 10
EN

Stack Overflow用户

发布于 2011-07-28 01:56:40

整数显示宽度您可能将整数定义为“ (4)”,但(4)对存储的数字没有实际影响,这让您感到困惑。换句话说,你可以很好地存储999999这样的数字。原因是,对于整数,(4)是显示宽度,并且仅在与ZEROFILL修饰符一起使用时才有效。此外,这仅用于显示目的,因此您可以将列定义为"INT(4) ZEROFILL“并存储99999。如果您存储了999,那么当您选择此列时,mysql REPL (控制台)将输出0999。

换句话说,如果你不需要ZEROFILL的东西,你可以去掉显示宽度。

票数 7
EN

Stack Overflow用户

发布于 2011-07-28 01:52:29

小数货币:使用数据类型。基于真实世界的生产场景,我推荐(19,8)。

编辑:我最初的建议是(19,4);然而,我最近遇到了一个生产问题,客户报告说他们绝对需要"scale“为”8“的小数;因此"4”是不够的,并且导致不正确的税务计算。我现在基于一个真实的场景推荐(19,8)。我很乐意听到需要更细粒度的故事。

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

https://stackoverflow.com/questions/1380290

复制
相关文章

相似问题

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