数据类型
数值类型
分为整型和浮点型:
- BIT雷同于数据布局中的位图,BIT可以认为是一组二进制bit位.
BIT(10)表示这个类型里就存最多10个bit位.
- 固然TINYINT和SMALLINT更节省空间,但是照旧更推荐利用INT或者BIGINT.
假如存储空间不够了,多花点钱,多买几个更大的硬盘,用不了几千~
假如因为利用TINYINT / SMALLINT,用出bug了,如许的bug造成的损失可远远不是几个硬盘能比的.
TINYINT: -128 => +127
SMALLINT: -32768 => +32767
一旦出现bug,天知道有多损失.
- FLOAT(M,D) 单精度浮点数
- DOUBLE(M,D) 双精度浮点数
M表示浮点数的长度(总共有几位).
D表示小数点后有几位.
好比定义类型的时候,写作double(3,1).
数字长度为3,小数点后是1位.
- DECIMAL(M,D) 和 NUMERIC(M,D) 这俩差别不大,一般利用decimal类型即可.
DECIMAL(M,D) 不再利用IEEE754这一套了,而是自己设定了一套存储格式,自己设定的这个存储格式,相当于"变长的",付出了更多的空间,来使存储的数据更精确.
其实不光仅是空间代价,还偶然间代价.拿着两个decimal进行运算的速度,要比拿着两个double进行运算的速度慢很多.
- 其实MySQL的类型中也提供了"无符号类型",但是在MySQL官方文档中,明白阐明白,不建议利用无符号类型.甚至无符号类型大概会在未来的更高版本的MySQL中被删除掉.
字符串类型
- char(SIZE) 固定长度,好比char(50),表示这个类型(这一列)固定就是50个字符.
假如接下来存储的数据都是5,6个字节这种,这时每个字段都是斲丧50字节,实际上只用上了5,6个字节,剩下的都还空着呢!
- varchar(SIZE) 可变长度,varchar(50) 表示这个类型就是可变长的,最大是50字符.
强调: varchar(SIZE) 的单位是字符,不是字节!!!
尤其在utf8如许的编码方式下,一个字符=好几个字节!!
- TEXT 也是可变长的字符串,不必要指定最大长度,完全根据你存储的数据自顺应,
固然TEXT和varchar都是可变长的.
但是实际利用的时候,照旧更倾向于varchar.
varchar可以指定最大长度,而TEXT没法指定.(TEXT就大概会很大,大小难以预估)
- BLOB 存储的是二进制的数据.
前面的那几个都是存储文本数据的~
假如要存储图片/视频/音频…
那就利用blob.
但是一般不建议利用数据库直接存储图片/视频/音频等内容…
- 一方面,数据库SQL里提供了很多非常丰富的功能,但是这些功能都是只针对数字/字符串/时间日期才有效的…
只是存二进制数据,上述的功能就不能用了.
- 另一方面,数据库通常是一个系统中,实行效率比较低的环节,容易成为性能瓶颈.
把二进制数据提出来,不利用数据库保存,也能够有效低落数据库的负担~
日期类型
- TIMESTAMP 这个4字节的版本的时间戳,如今不推荐利用了,因为当超过2038年,就溢出了~~ 盘算机发展历史上,有一个知名问题,千年虫问题.感兴趣可以去搜一搜~
本文到这里就竣事啦~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |