schema与数据类型的优化—— (1)数据类型的优化

本文探讨了如何通过使用适当的数据类型,如将IP地址存储为整形、日期用系统内置类型、避免null值和选择最小数据类型,来提升数据库性能。讲解了不同类型(如整型、字符、日期、BLOB/TEXT、枚举)的最佳实践,并强调了针对不同场景的存储策略和效能提升技巧。

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

schema与数据类型的优化

1)ip地址使用整形存储  
select INET_NTOA()   ,   select INET_ATON() 
---	
	select INET_ATON('192.168.58.111');
	+-----------------------------+
	| INET_ATON('192.168.58.111') |
	+-----------------------------+
	|                  3232250479 |
	+-----------------------------+
	1 row in set (0.00 sec)
	 select INET_NTOA('3232250479');
	+-------------------------+
	| INET_NTOA('3232250479') |
	+-------------------------+
	| 192.168.58.111          |
	+-------------------------+
	1 row in set (0.00 sec)
2)日期的存储使用系统自带的,而不是字符串类型
3)尽量避免使用null(很难进行优化,null转not null)
4) 更小的通常更好
5)实际细则

	整型类型: tinyint smallint mediumint int bigint
				8    16         24        32     64
				尽量使用满足需求的最小数据类型
				(整形存储与长度无关,与底层存储的字节数有关系)					
				
	字符字符串类型:
		varchar根据实际内容长度保存数据
				使用最小的符合需求的长度
				varchar(n) n小于等于255使用额外一个字节保存长度
					        n > 255 使用额外两个字节保存长度
					使用场景:存储波动长度较大的数据,如,文章
							 字符串很少更新的场景,每次更新后都会重新计算并使用额外存储空间保存长度
							 适合保存多字节字符,如汉字、特殊字符等
		char固定长度的字符串
					1)最大长度255
					2)会自动删除末尾的空格
					3)检索效率、写效率、会比varchar高,以空间换时间
					应用场景 1、存储波动长度不大的数据,如md5摘要
							2、存储短字符串、经常更新的字符串
		BLOB和TEXT类型:不建议使用存在IO问题
	Datetime和timestamp:
					datetime: 占用8个字节
										与时区无关,数据库底层时区配置,对datetime无效
										可保存到毫秒
										可保存时间范围大
										不要使用字符串存储日期类型,占用空间大,损失日期类型函数的便捷性						
					timestamp:占用4个字节
										时间范围1970-01-01 -- 2038-01-19
										精确到秒
										采用整形存储
										依赖数据库设置的时区
										自动更新timestamp列的值
					date: 	占用的字节数比使用字符串、datetime、int存储要少,使用date类型只需要3个字节
							使用date类型还可以利用日期时间函数进行日期之间的计算
							date类型用于保存1000-01-01到9999-12-31之间的日期		
	 使用枚举代替字符串类型
 	 特殊类型数据
	 		人们经常使用varchar(15)来存储ip地址,然而他的本质是32位无符号整数,不是字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值