MySql数据类型-读书笔记

一.选择优化的数据类型
  1. 更小的通常更好: 在允许的情况下,应该尽量使用可以正确存储数据的最小数据类型,因为占用更少的磁盘,内存和CPU缓存,处理周期短, 例如只要存储0~200,tinyint unsigned 更好
  2. 简单就好: 例如整型比字符型操作代价更低,因为字符集和校对规则(排序规则)使字符串比较比整型比较更复杂.该使用MySql的内建类型(date,time,datetime)时,不要使用字符串存储
  3. 尽量避免使用Null: 通常情况下,最好指定列为 not null,除非真的需要存储null值,因为null的列使得索引,索引统计和值比较都更为复杂;可为null的列会使用更多的存储空间. 调优时,将可为null的列改为not null,带来的性能提升比较小,但是如果计划在列上建索引,就应该尽量避免设计成可为null的列

注: InnoDB使用单独的位bit存储null值,对于稀疏数据(很多值为null,只有少数列非null)有很好的空间效率,但不适用与MyIASM

二.选择具体的数据类型
1.整数类型
  整数类型可选择** unsigned **属性,表示不允许负值,大致可以使整数的上限提高一倍.例如: tinyint 存储范围 -128 ~ 127;而 tinyint unsigned 的范围为:0~255
  1. TInyint: 8位存储空间,存储的范围从-2(8-1) 到2(8-1)
  2. smallint: 16位存储空间,存储的范围从-2(16-1) 到2(16-1)
  3. mediumint: 24位存储空间,存储的范围从-2(24-1) 到2(24-1)
  4. int: 32位存储空间,存储的范围从-2(32-1) 到2(32-1)
  5. bigint: 64位存储空间,存储的范围从-2(64-1) 到2(64-1)

注: 上述选择决定MySql怎么在内存和磁盘中保存数据,然而整数计算一般使用64位的bigint整数,即使32位环境也是

2.实数类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值