| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 五、MySQL数据类型 -> 正文阅读 |
|
[游戏开发]五、MySQL数据类型 |
1、数据类型选取的基本原则MySQL支持多种数据类型,为了尽可能提高MySQL性能,需要选取合适的数据类型,通常来说,可以遵循以下原则: 选取更小的数据类型:使用可以满足数据存储需求的更小的数据类型,可以节约存储空间,减少对磁盘、内存、CPU缓存资源的占用。 尽量避免NULL:除非真的需要存储NULL值,否则应该将列都设置为NOT NULL。对允许为NULL的列,其索引会更加复杂。 2、字符串类型varchar与char是MySQL中最基本的字符串类型。它们的具体实现与存储引擎相关,具体如下: 2.1、varchar最常见,用于存储变长字符串,它比定长类型字符串更节省空间,存储的字符串越短,占用的空间越小。但有一种特殊情况,如果MySQL表使用row_format=fixed创建的话,每行都会使用定长存储。 由于varchar是变长的,因此额外需要1或2字节来存储字符串的长度:如果字符串长度小于等于255字节,只需要1字节来存储长度,否则需要2字节存储长度。所以,一个varchar(10)的列需要11个字节的存储空间,一个varchar(1000)的列需要1002个字节的存储空间。 varchar节约了空间,通常情况下对提升性能也有帮助。但是,在update时,可能会导致行的内容比原来更长,就需要一些额外的工作,从而导致性能的降低。 适合使用varchar的场景:
此外,需要注意的是,在5.0+版本中,MySQL在存储和查询varchar类型数据时,会保留字符串末尾空格。而在4.1或之前的版本中,该空格会被抹掉。 2.2、charchar类型用于存储定长字符串,MySQL会为char类型的列分配固定长度的空间。 存储char类型数据时,字符串末尾的空格会被抹掉(个人理解:MySQL无法区分该空格是字符串实际值中的空格,还是用于填充空间的空格)。如果字符串的长度未达到为其分配的固定长度,后面的空间会使用空格填充。 适合使用char的场景:
对于非常短的字符串,比如1字节长度的字符串,使用char类型比varchar类型更能节省空间,因为varchar还需要额外的1个字节记录长度。 3、日期和时间类型?MySQL中有多种数据类型可以用来保存日志和时间,比如year和date。但是,最常用的还是datetime和timestamp,这两者能够存储的最小时间粒度为秒,这也是MySQL支持的能够存储的最小时间粒度。 3.1、datetime能够存储的范围大,从1001年到9999年,精度为秒。它把日期和时间封装到格式为YYYYMMDDHHMMSS的整数中。与时区无关,占用8个字节(大于4个字节可表示的最大值)。 3.2、timestamp保存了从1970年1月1日0点0分以来的秒数,使用4个字节,只能表示1970年到2038年范围内的时间。timestamp的转换为时间显示时,根据时区会有所有不同。如值为0的timestamp,在美国东部时区显示为“1969-12-31 19:00”,与格林尼治时间相差5小时。 timestamp默认就是NOT NULL的。与datetime不同的是,如果插入一行数据时,在没有指定第一个timestamp列的内容时,MySQL会将这列的值设置为当前时间。 由于占用空间小,通常建议使用timestamp,而不是datetime。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 18:56:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |