是否有常见应用程序的最佳实践MySQL数据类型列表.例如,列表将包含id,ip地址,电子邮件,主题,摘要,描述内容,URL,日期(时间戳和人类可读),地理点,媒体高度,媒体宽度,媒体持续时间等的最佳数据类型和大小,等等
谢谢!!!
lon*_*eck 10
我不知道,所以让我们开始吧!
numeric ID/auto_increment主键:使用无符号整数.不要使用0作为值.并记住各种大小的最大值,即如果你不需要40亿的值,当mediumint提供的1600万就足够时,不要使用int.
日期:除非您特别需要超出mysql的DATE和TIME类型支持范围的日期/时间,否则请使用它们!如果您改为使用unix时间戳,则必须将它们转换为使用内置的日期和时间函数.如果您的应用需要unix时间戳,您可以随时转换标准日期和时间数据类型unix_timestamp().
ip地址:使用inet_aton()并且inet_ntoa()因为它可以轻松地将IP地址压缩为4个字节,并且您可以使用索引进行范围搜索.
整数显示宽度您可能会将此类整数定义为"INT(4)",但却被(4)对存储的数字没有实际影响的事实所困惑.换句话说,你可以存储像999999这样的数字.原因是对于整数,(4)是显示宽度,并且只有与ZEROFILL修改器一起使用时才有效.此外,这仅用于显示目的,因此您可以将列定义为"INT(4)ZEROFILL"并存储99999.如果存储了999,则当您选择此列时,mysql REPL(控制台)将输出0999.
换句话说,如果你不需要ZEROFILL的东西,你可以不用显示宽度.
资金:使用十进制数据类型。基于实际生产场景,我建议(19,8)。
编辑:我最初的建议是(19,4);但是,最近我遇到了一个生产问题,客户报告说他们绝对需要“小数位数”为“ 8”的十进制;因此,“ 4”是不够的,并导致不正确的税收计算。我现在根据实际情况建议(19,8)。我很想听听需要更详尽的故事。
| 归档时间: |
|
| 查看次数: |
4706 次 |
| 最近记录: |