2. MySQL数据类型

选择正确的数据类型对于获得高性能至关重要。选择原则:
1. 更小的通常更好;
2. 简单就好;
3. 尽量避免NULL;

1. 整数类型

TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, 分别使用8,16,24,32,64位存储空间。可以存储的值的范围从-2(N-1)到2(N-1)-1,其中N是存储空间的位数。
整数类型有可选的UNSIGNED属性,表示不允许负值,大致可以使正数的上限提高一倍。例如TINYINT,UNSIGNED可以存储的范围是0~255,而TINYINT的存储范围是-128~127。
有符号和无符号类型使用相同的存储空间,并具有相同的性能。

2. 实数类型

实数:带有小数部分的数字。

  1. FLOAT, DOUBLE类型支持标准的浮点运算进行近似计算。
  2. DECIMAL类型用于存储精确的小数,支持精确计算。也可以存储比BIGINT还大的整数。

3. 字符串类型

VARCHAR, CHAR是两种最主要的字符串类型。

  1. VARCHAR类型:用于存储可变长字符串,是最常见的字符串数据类型,比定长类型更节省空间,因为它仅使用必要的空间(例如,越短的字符串使用越少的空间)。
    VARCHAR需要使用1或2个额外字节记录字符串的长度,节省了存储空间所以对性能也有帮助。
    使用VARCHAR(5)和VARCHAR(20)存储‘hello’的空间开销是一样的。

  2. CHAR类型:定长。根据定义的字符串长度分配足够的空间,适合存储很短的字符串,或者所有值都接近同一长度。

  3. BLOB和TEXT类型:用于存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。
    数据类型家族:
    字符类型:TINYTEXT, (SMALLTEXT, TEXT), MEDIUMTEXT, LONGTEXT;
    二进制类型:TINYBLOB, (SMALLBLOB, BLOB), MEDIUMBLOB, LONGBLOB;

  4. 使用枚举(ENUM)类型代替字符串类型

4. 日期和时间类型

MySQL提供两种相似的日期类型:DATETIME和TIMESTAMP

  1. DATETIME类型:保存大范围的值,从1001年到9999年,精度为秒,格式为YYYYMMDDHHMMSS的整数中,与时区无关,使用8个字节的存储空间。
    默认情况下,MySQL以一种可排序的、无歧义的格式显示DATETIME值,如“2008-01-16 22:37:08”

  2. TIMESTAMP类型:保存从1970年1月1日午夜(格林尼治标准时间)以来的秒数,它和UNIX时间戳相同。只使用4个字节的存储空间,存储范围比DATETIME小得多。
    FROM_UNIXTIME(), UNIX_TIMESTAMP()函数,使两者相互转换。

5. 位数据类型

MySQL有少数几种存储类型使用紧凑的位存储数据。不管底层存储格式和处理方式如何,从技术上说,都是字符串类型。

  1. BIT类型
    BIT列在一列中存储一个或多个true/false值,BIT(1)定义一个包含单个位的字段,BIT(2)存储2个位,最大长度是64个位。

  2. SET类型
    SET类型:一系列打包的位的集合,保存很多true/false值,有效的利用了存储空间。

6. 特殊类型数据

IPv4地址—VARCHAR(15)

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值