2026/7/28 20:07:40

MySQL字段类型及使用

MySQL字段类型及使用 本文主要介绍MySQL的字段。首先字段类型分为以下几大类数值型、日期时间型、字符串型、复合类型先插入一个换算1字节(byte)(B)8bit(位)(b) 1M1024B 1G1024M 1T1024G数值型整形注意事项以INT为例int(11) 后面的这个数字近表示最大显示长度并不是指最大存储数值。其他类似浮点型注意事项1、双进度占用存储资源是单精度的一倍。一般对精度要求高才用double。否则为了节约资源。我们都用float来代替小数。2、金钱相关不适用以上两种使用 decimal 。这个字段长度在现在市面上运行版本(5.) 值如DECIMAL(5,2) - 9 9 9 . 9 99999.99 占用 7个字节。所占字节长度DECIMAL(M, D) 为 M2个字节字符型注意事项1、char(5),varchar(5) 都能存储5个字符单varchar要比char多占用一个字节多出来一位存储字符串长度2、char会根据定义长度分配空间并剔除末尾空格3、更新操作字符串变长varchar空间占用会变多MyISAM将行拆开不同片段处理而InnoDB分裂页使行可以存在业内容易产生碎片而char定长不容易产生碎片4、字符串长短差异较大时使用varchar 如果长度差不多或者相同char5、varchar能存储255字符超长的字符串需使用text6、查询速度 charvarchartext7、char(10),varchar(10)等括号内的数字在MySQL5.0.3后表示字符数而不是字节数8、varchar、text在MySQL5.0.3以后占用内存空间最大都是65535字节9、varchar、char 可以设置默认值text没有默认值时间日期格式1、timestamp超出范围的值无法设置。2、实际工作中我基本上不用以上字段基本上会使用时间戳存储int字段中。整体下来int性能相对较好一些(实际与存储引擎等均有关系具体可创建表录入百万数据设置不同字段类型查询比较我测试int整体下来相对好一点仅个人意见)。表设计注意事项1、表名、字段名尽量简明释义注意添加注释2、尽可能的设置自增主键3、实现具体逻辑是尽量不要使用存储过程4、字段类型为枚举或者布尔值是尽量使用tinyint5、尽量将索引字段值设置为非空null 会导致索引失效6、能用到整形尽量用整形能用短字符尽量用短字符能用char尽量用char7、text尽量不要使用8、IP信息需要存储时尽量转成整形存int其他信息后续如果想起来再继续补充