mysql建模的过程中,对于优化来讲一个非常重要的点就是字段类型的设置,好的字段类型的设置可以帮助更快的查询数据同时能节约硬盘空间,这对于优化数据库来讲是非常重要的。

mysql的字段类型大体来讲分为int、text、varchar、char、blog等几种,而各自的类型中又划分了不同的字符数的类型,这里先来讨论几种整形的情况。

先来看一下基本的概念:字节(byte),1个字节等于8个位(bit),一个bit存储0或者1,理解这个对于理解后面的占用字节导致的存储数值的有很重要的作用。

整型,常见细分为tinyint、smallint、mediumint、int、bigint这几种。

1)tinyint:存储所占一个字节,一个字节等于8bit,根据1bit可以存储0到1两种可能性,因此tinyint类型可以存储2的8次方,也就是256种可能性,从0开始计数,无符号也就是可以 存储0~255,如果是有符号,那就是-128~127。

2)smallint:存储所占两个字节,同上也就是可以存储2的16次方,也就是可以存储65536种可能性,无符号从0开始则是可以存储0~65535,有符号则是-32768~32767。

3)mediumint:存储所占三个字节,也就是2的24次方,可以存储16777216种可能性,无符号可以存储0~16777215,有符号可以存储-8388608~8388607。

4)int:存储所占四个字节,也就是2的32次方,可以存储4294967296种可能性,无符号可以存储0~4294967295,有符号则是-2147483648~2147483647。

5)bigint:存储所占8个字节,也就是2的64次方,可以存储2的64次种可能性,无符号可以存储0~((2³²×²)-1),有符号则是-(2³²×²)/2 ~ (2³²×²)/2-1。

我们经常会见到int(11)、tinyint(1)这种后面跟括号里面放数字的情况,很多人以为这是代表的该类型可存储的长度,但是我们上面已经分析了存储的情况,这种理解肯定是不对的,实际上括号里的数字表示的是最大显示宽度,这个数字和存储大小及其类型没有任何关系,也就是说tinyint(1)和tinyint(3)都是存储一个字节,并不会因为括号里的数字改变,这个数字仅仅是显示最大宽度。

例如tinyint(3)存储11则会显示011,因为最大宽度为3,达不到的情况下用0来补充,这样的话就很好理解了,下图也是做了一定的对比,分别存储的是1和123456、1234567890这几个数字。

在设置这个括号里的数值时我们也要小心,因为mysql手册上明确写了:当 mysql 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度!

mysql mediumint 长度_mysql字段类型tinyint、smallint、mediumint、int、bigint详解相关推荐

  1. mysql decimal长度_mysql decimal类型与decimal长度用法详解

    以下内容转自:http://blog.csdn.net/zhanghao143lina/article/details/53816884 三者的区别介绍 float:浮点型,含字节数为4,32bit, ...

  2. mysql数据类型设计说明_MySQL的数据类型和建库策略分析详解

    MySQL的数据类型和建库策略分析详解 更新时间:2008年04月06日 01:16:47   作者: 无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构.充分利用空间是十分必要的 ...

  3. mysql installer安装_MySQL Installer 8.0.21安装教程图文详解

    1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MySQL Installer 8.0.21 3. 下载安装包 方式一:官网 ...

  4. mysql 1061原因_MySQL死锁问题分析及解决方法实例详解(转)

    出处:http://www.jb51.net/article/51508.htm MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下: 1.MySQL常用存储 ...

  5. mysql 自动截断_MySql中关于超长自动截断的案例详解

    这篇文章主要介绍了MySql超长自动截断实例详解的相关资料,这里通过实例来说明如何实现自动截断的功能,需要的朋友可以参考下 MySql超长自动截断实例详解 小伙伴问到一个问题,为啥在项目中调用插入或者 ...

  6. mysql基本数据长度_MySQL的类型与数据长度

    之前遇到一个问题"怎么评估一行MySQL记录占据了多少字节?".自己当时也不是特别清楚.当时只是简单的知道,具体的长度跟编码相关.前几天系统研究了一下MySQL中的编码问题,铺垫已 ...

  7. mysql select语法_MySQL SELECT语法(一)SELECT语法详解

    SELECT的语法如下: SELECT[ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT ...

  8. mysql 查询 集合_MySQL使用集合函数进行查询操作实例详解

    本文实例讲述了MySQL使用集合函数进行查询操作.分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT ...

  9. mysql引号注入_MySQL在不知道列名情况下的注入详解

    前言 最近感觉脑子空空,全在为了刷洞去挖洞,还是回归技术的本身让自己舒服些.好了,下面话不多说了,来一起看看详细的介绍吧 前提 以下情况适用于 MySQL < 5版本,或者在 MySQL > ...

最新文章

  1. 页面滑动至某处,固定导航。
  2. docker 在容器外执行某个容器内的某个命令
  3. CTFshow 信息收集 web6
  4. boost::type_index模块实现存储有关类型的信息
  5. java 内存泄露 书籍_java虚拟机内存溢出和泄漏实例
  6. ecshop3.0.0注入
  7. pythonxml读写_python xml读取和写入
  8. 普通人如何走上复利投资致富的门路?
  9. 【王道计组笔记】储存系统(1):基本概念
  10. cartographer运行没有map_Cartographer激光SLAM2D源码分析
  11. GoodTask for mac (任务管理器)
  12. Django对接微信公众号以实现消息自动回复
  13. pamac 安装 ros-noetic-desktop-full(AUR) 失败后如何清理残留的问题
  14. 转 TensorFlow Object Detection API 多GPU 卡平行计算,加速模型训练速度教学
  15. 调用百度ocr接口识别表格
  16. python读取csmar_wind数据转为国泰安数据 stata命令
  17. 智能座舱全舱感知系统SCSS
  18. 中小企业发展电子商务的必要性
  19. 深度学习数学基础-概率与信息论
  20. Afreechart很强大的图表库,支持股票曲线图,饼图,曲线

热门文章

  1. 谁再说mysql难学,我一张思维导图就扔过去,看完再说话
  2. Linux版nexus3安装包,简单安装配置
  3. Selenium使用CSS定位 总结
  4. vue仿钉钉的考勤日历(基于vue-calendar-component组件)
  5. Maximo 教程 (1)
  6. vue2,HR的话扎心了
  7. 75. 让面部表情跟着鼠标光标变化
  8. 【mud】坐在车里玩mud(/obj/toy/car.c)
  9. c语言 多字节赋值给数组,c语言给数组赋值的3种形式
  10. 常用软件 User-Agent 记录