900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Mysql建表数据类型选择及默认值设置

Mysql建表数据类型选择及默认值设置

时间:2020-12-30 13:46:12

相关推荐

Mysql建表数据类型选择及默认值设置

一、选择原则

1、越小越好

一般情况下,应该尽量使用可以正确存储数据的最小数据类型。例如只需要存 0~200或者一些枚举类型,最好使用tinyint。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和 CPU 缓存,并且处理时需要的 CPU 周期也更少。

2、简单就好

能用整型的尽量不用字符串类型,简单数据类型的操作通常需要更少的 CPU 周期。例如,整型比字符操作代价更低,因为字符集和校对规则(排序规则)使字符比较 比 整型比较更复杂。这里有两个例子:一个是应该使用 MySQL 内建的类型(date, time, datatime)而不是字符串来存储日期和时间,另一个是应该用无符号整型存储 IP 地址。

3、尽量避免NULL

通常情况下最好指定列为 NOT NULL,除非真的需要存储 NULL 值。如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更复杂。特别是计划在列上建索引,就应该尽量避免设计成可为 NULL 的列。

二、常用的字段类型的选择说明

1、数值类型

2、字符串类型

会处理尾部空格:如果存储数据末尾包含空格,则会删除末尾空格

3、浮点类型

m代表总位数,d代表小数点右边的位数。m和d又称为精度和标度

4、时间类型

三、默认值设置原则

1、字符串类型

建议默认设置Empty String,尽量不要设置NULL

原因:空值(’’)是不占用空间的,MySQL中的NULL其实是占用空间的

另外:从开发角度考虑,如果字段为空,默认NULL,接口没有做非空判断直接输出NULL,前端会直接展示NULL,这是不友好的

2、数值类型

如果有特殊情况,根据特殊情况定义,否则建议默认给 0

3、时间类型

可以根据需要设置当前时间,一般用于createTime字段等,可以省去代码层设置,数据库直接记录当前数据插入时间

并且可以勾选根据当前时间戳更新,一般用于updateTime字段等,可以省去代码层设置,当有数据更新,数据库就会根据当前时间修改此字段

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。