数据库字段规范
1.优先选择符合存储需要的最小的数据类型:
(1)将字符串转化为数字类型存储:以Ip地址为例:255.255.255.255。
INET_ATON('255.255.255.255') = 4294967295
INET_NTOA(4294967295)='255.255.255.255'
节省更多存储空间。这样可以加载更多数据到缓存,提高命中率。
(2).对于非负型数据来说,优先使用无符号整形来存储。表中自增ID等。无符号相对于有符号多出一倍的存储空间。
(3)varchar(n)n代表的是字符数,而非字节数。
在mysql中使用utf-8编码的varchar(255)可以存储765个字节。
(4)字段长度会影响分配内存的大小。
(5)避免使用TEXT、blob数据类型
(6)建议把BLOB或是Text列分离到单独的扩展表中。
(7)TEXT或Blob类型只能使用前缀索引。并且TEXT不能有默认值。
(8)避免使用ENUM数据类型
ENUM数据类型本身是varchar类型但是使用整型来存储的。
修改ENUM值需要使用ALTER语句,修改表结构。修改表结构会对表加锁,可能导致数据库阻塞。
枚举类型本身是varchar类,进行order by操作的时候需要先将整形转化为varchar然后再进行排序。所以效率差,需要做额外的操作。
禁止使用数值为enum的枚举类。
(9)尽量把所有的列定义为非空not null。
可能为空的列,建立索引,需要额外的空间来保存列是否为空或非空状态值。占用更多的空间。
进行比较和计算的时候需要对Null值做特别的处理。造成索引失效。
(10)对于时间类型的数据列,定义为timestamp或者datetime。
timestamp范围:1970-01-01 00:01:01 ~ 2038-01-19 03:14:07
timestamp占用4个字节和INT相同,但比Int可读性高。
超出timestamp范围使用datetime。
(11)财务相关的数据强制使用decimal精准浮点型。
计算时不会丢失精度。
占用空间由定义的宽度决定。
每4个字节可以存储9位数字,并且小数点占用一个字节。
用于存储比Bigint更大的整数数据。比varchar类型存储更加高效。
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014172271/article/details/79947684
个人分类: 数据库
所属专栏: 数据库总结
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

数据库字段规范

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭