MySQL优化【字段设计】

本文介绍了MySQL字段设计的七大原则,包括使用整型表示字符串、选择合适的定长和非定长数据类型、优先选择小的数据类型、使用notnull、完整注释、限制字段数量以及预留字段。特别强调了金额字段应使用decimal确保精度,字符串字段考虑使用char或varchar,并指出null处理的效率和存储成本。遵循这些原则能提升数据库性能和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


转载自:
作者:程序员乔戈里
链接:https://juejin.cn/post/6844903750839058446

MySQL字段设计七大原则

字段类型的选择,设计规范,范式,常见设计案例

原则一:尽量使用整型表示字符串

存储IP

INET_ATON(str),address to number
INET_NTOA(number),number to address

MySQL内部的枚举类型(单选)和集合(多选)类型

但是因为维护成本较高因此不常使用,使用关联表的方式来替代enum

原则二:定长和非定长数据类型的选择

decimal不会损失精度,存储空间会随数据的增大而增大。double占用固定空间,较大数的存储会损失精度。非定长的还有varchar、text

金额

对数据的精度要求较高,小数的运算和存储存在精度问题(不能将所有小数转换成二进制)

定点数decimal

price decimal(8,2)有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数)

小单位大数额避免出现小数

元->分

字符串存储

定长char,非定长varchar、text(上限65535,其中varchar还会消耗1-3字节记录长度,而text使用额外空间记录长度)

原则三:尽可能选择小的数据类型和指定短的长度


原则四:尽可能使用 not null

null字段的处理要比null字段的处理高效些!且不需要判断是否为null
null在MySQL中,不好处理,存储需要额外空间,运算也需要特殊的运算符。如select null = nullselect null <> null<>为不等号)有着同样的结果,只能通过is nullis not null来判断字段是否为null。
如何存储?MySQL中每条记录都需要额外的存储空间,表示每个字段是否为null。因此通常使用特殊的数据进行占位,比如int not null default 0string not null default ‘’

原则五:字段注释要完整,见名知意

原则六:单表字段不宜过多

二三十个就极限了

原则七:可以预留字段

在使用以上原则之前首先要满足业务需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值