mysql 中字段类型与宽度的选择


MySql 中 varchar 和varchar 的区别

字段类型与合理的选择字段类型

注意:int字段设置宽度也可以设置到int最大容量

 

之前一直对于mysql的字段类型选择存在疑惑,int 与 tinyint , int(1) 与 tinyint(1) , varchar 与 char ,varchar(10) 与 char(10) ,分不清楚他们的区别.。

认为 char(10)可以存储10个字符 varchar (10) 也可以存储10个字符。那我为什么不直接使用varchar类型呢?那么存在char类型的意义又是什么呢?tinyint 可以存储 128到127(SIGNED),0到255(UNSIGNED) int也可以存储 那么多数字,甚至可以储存更大的数字,那么为什么不直接使用int 而采用 tinyint呢?

字段类型:因为数据库指定类型,在储存数据的时候就会占用不同大小的空间,TINYINT 占用 1个字节  INT 占用 4个字节 ,如果一个字段最大 128 如果采用int类型 那么数据库在储存 搜索 的时候就会比 TINYINT 类型多出三个字节的空间,数据量小的情况下影响不大,或者说无感,但是当数据量足够大的时候,就会导致数据库文件过大,查询速度慢的问题。

字段宽度:在指定字段类型之后,可能我们的数据达不到字段类型的最大宽度,也会造成空间浪费,比如储存MD5 32 位字符串,如果直接指定char(155),则会导致字段浪费125的宽度,char字段如果填充不满指定宽度还会使用0填充,就会使数据库多储存125个字符造成储存空浪费,在查询的时候也会影响查询速度.

例:

1.字段类型选择

储存整数采用int类型,储存字符串采用char或者varchar类型,【字段在实际操作用进行选择,这里只是举例】

2.字段宽选择

储存 1-9 的数字 采用 tinyint(1) , 储存 655360 采用 int(5)

储存固定32位长度 采用 char(32) , 储存 1-32 长度的字符串 采用 varchar(33)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM