设为首页 收藏本站
查看: 443|回复: 0

[经验分享] MySQL 数字类型的思考

[复制链接]

尚未签到

发表于 2018-10-2 06:00:01 | 显示全部楼层 |阅读模式
  1. 整数类型:
类型存储正负数范围全正数范围全正长度备注tinyint1字节-128~1270~2553smallint2字节-32768~327670~655355mediumint3字节-8388608~83886070~167772158可用于邮编号int4字节-2147483648~21474836470~429496729510可用拼接1的方式存手机号bigint8个字节±9223372036854775808-118-------20位可存储手机号  注意:
  1.在类型后面加unsigned,可向服务器声明全正数。可使正数最大值x2
  一般喜欢使用int作为主键类型,若在表定义时加上int unsigned。可使主键范围扩到原来的两倍,不用担心主键值用尽的尴尬情况
  2.手机号可以用int也可以用bigint。但即使是bigint也比varchar(11)占用更少的空间,从而在这一点上性能更高。
  3.但是:任何数字列与unsigned定义的列进行计算后,若出现负数结果,则会返回 UNSIGNED的最大值。这个问题是继承C语言的。若考虑到会产生列与列直接的计算,需要避免UNSIGNED的定义。只在主键列上UNSIGNED设置即可,因为主键列一般设置为业务无关自增列。
  4.留空
  2.数值型(DEMICAL,NUMERIC)
  DEMICAL,NUMERIC都是用来存储精确的数值,一般金额使用这个参数,DEMICAL是基本类型,NUMERIC按DEMICAL进行计算。DEMICAL按照二进制的格式存储
  例如:我们公司使用DEMICAL(18,4)来存储金额数值
  小数位为4位,整数位位18-4=14位
  DEMICAL(0),无法存数据,DEMICAL(X)不指定小数位数时,默认为0,理论上DEMICAL最长可以容纳65位数字
  3.位值型(bit)
  用于存储位值,最长可达64位,mysql命令行客户端无法查看位值数据。导出时也可能显示乱码,不要担心。
  应用:bit(1)   用于判断是否
  bit(32) 用于存储IP地址,只占4字节,应该是最省空间的选择
  例如:bit(6)  存入 b'101',其实是按照00101来存储,不足的会在左边补零,读取出来视不同客户端也会补零
  4.浮点类型
  float与double
  其小数点位数和总位数的关系与DEMICAL相似。浮点类型的数值是不精确的,需要精确计算的数值不建议设置为浮点型
  例如:float(7,4) 存入9999.00009,小数位超出1位,其他的类型都会报错,
  但是浮点型会自动四舍五入,再次取出后就会变成999.0001


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607264-1-1.html 上篇帖子: mysql表分区实验总结 下篇帖子: MySQL - reset a lost MySQL root password
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表