专业的编程技术博客社区

网站首页 > 博客文章 正文

数据库设计的字段类型选择建议(数据库设计的字段类型选择建议怎么写)

baijin 2024-09-10 10:53:44 博客文章 10 ℃ 0 评论

MySQL 支持各种各样的数据类型,为字段或者变量选择合适的数据类型,不仅可以有效地节省存储空间,还可以有效地提升数据的计算性能。通常来说,数据类型的选择遵循以下原则。

(1)在符合应用要求(取值范围、精度)的前提下,尽量使用“短”数据类型。

“短”数据类型的数据在外存(例如硬盘)、内存和缓存中需要更少的存储空间,查询连接的效率更高,计算速度更快。例如,对于存储字符串数据的字段,建议优先选用 char(n)和 varchar(n),长度不够时选用text数据类型。

(2)数据类型越简单越好。

与字符串相比,整数处理开销更小,因此尽量使用整数代替字符串。例如,字符串数据'12345'的存储,整数smallint数据12345的存储如果主键选用整数数据类型,可以大大提升查询连接效率,提高数据的检索性能。

另外由于MySQL提供了IP地址与整数相互转换的函数,存储IP地址时可以选用整数类型。

CREATE FUNCTION `int2ip`(ip INT) RETURNS VARCHAR(15)

BEGIN

DECLARE part1 INT DEFAULT 0;

DECLARE part2 INT DEFAULT 0;

DECLARE part3 INT DEFAULT 0;

DECLARE part4 INT DEFAULT 0;

SET part4 = ip % 256;

SET ip = FLOOR(ip / 256);

SET part3 = ip % 256;

SET ip = FLOOR(ip / 256);

SET part2 = ip % 256;

SET part1 = FLOOR(ip / 256);

RETURN CONCAT(part1, '.', part2, '.', part3, '.', part4);

END;

(3)尽量采用精确小数类型(例如decimal),而不采用浮点数类型。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。

(4)在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储日期和时间。

(5)尽量避免NULL 字段,建议将字段指定为Not NULL 约束。这是由于在MySQL 中,含有空值的列很难进行查询优化,NULL值会使索引的统计信息以及比较运算变得更加复杂。推荐使用0、一个特殊的值或者一个空字符串代替NULL值。而且mysql也会使用1个字节来表示空的数据。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表