整数类型,tinyint、smallint、mediumint、int、bigint

如果需要保存整数(不含小数),可以选择tinyint、smallint、mediumint、int、bigint,它们的范围如下图:

另外,一些小知识:

  • 整形的计算是使用64位的bigint进行计算的
  • 如果为整形指定长度,并不会限制其大小范围,只是影响显示,其存储与计算与其它长度的整形一致

实数类型,float、double

如果仅为了存储,不作精确的计算,可用float和double,它们的计算结果并不是精确的,只是近似计算,是CPU直接的原生浮点计算,效率比较高,但不精确。

如果需要精确计算,则可以用decimal,但存储成本和计算成本比float和double高。

字符串类型,varhcar、char

它们的主要区别在于varhcar是变长的,char是定长的。

  • 在记录的字符串长度不一,或最大的字符串长度大于字符串平均长度时,使用varchar非常合适
  • 记录可知的定长的字符串,用char就合适了

时间类型,datetime、timestamp

  • datetime将时间数据年月日时分秒内部存储为整数类型,它需要8字节的空间。
  • timestamp记录GTM 2017-01-01至今的秒数,使用4字节的空间。它的缺点是时间范围只能到2038年,另外,它依赖与时区,时区的变更会使时间变得不同。
    timestamp更小,但有缺点,主要取决于这些缺点是否影响到你的程序。

另外,使用timestamp需注意一点是,我在使用工具创建一个表时,创建时没有特别设置“默认值”、“非空”、“更新”等属性,但timestamp会设置“默认值”为“CURRENT_TIMESTAMP”,“非空”,和“自动更新”。(究竟是工具的行为还是MySQL的行为我没有考究,大家引起注意这点,不要因此导致业务异常):

【MySQL】MySQL表设计的常用数据类型的更多相关文章

  1. MySql数据表设计,索引优化,SQL优化,其他数据库

    MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...

  2. 数据库设计-Mysql数据库表设计的过程中几个关键点

    一.表设计过程中应该注意的数据类型 1)更小的通常更好 控制字节长度 2)使用合适的数据类型: 如tinyint只占8个位,char(1024)与varchar(1024)的对比,char用于类似定长 ...

  3. Mysql学习总结(17)——MySQL数据库表设计优化

    1.选择优化的数据类型 MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要.不管选择何种类型,下面的简单原则都会有助于做出更好的选择: (1).更小通常更好 一般来说,要 ...

  4. MySQL库表设计小技巧

    前言: 在我们项目开发中,数据库及表的设计可以说是非常重要,我遇到过很多库表设计比较杂乱的项目,像表名.字段名命名混乱.字段类型设计混乱等等,此类数据库后续极难维护与拓展.我一直相信只有优秀的库表设计 ...

  5. mysql学习二、SQL常用数据类型

    一.常用数据类型 二.选择数据类型的原则: 1 业务需要 2 满足第一个条件下,需要存储空间最小的. 三.常用的选择数据类型思路:

  6. MySql 库/表级操作 及 数据类型

    数据库分类 关系型数据库(SQL):存储方式固定,安全 非关系型数据库(NoSQL):存储方式比较灵活,存储数据的效率比较高,不太安全 MySQL是一种关系型数据库管理系统(采用关系模型来组织管理数据 ...

  7. MySQL分类表设计--根据ID删除全部子类

    在做数据库分类表的时候,通常会有这样的设计:一个字段是ID,另一个字段PID,PID指向自己的上级分类: 这样的设计带来的问题是:我要删除一个类,我希望它的子类全部一起删除: 在不知道分类有多少层级的 ...

  8. mysql大表设计以及优化

    MYSQL千万级数据量的优化方法积累https://m.toutiao.com/group/6583260372269007374/?iid=6583260372269007374 MySQL 千万级 ...

  9. EF Code First MySql 主从表设计的一些需要注意的内容

    假如有下面两张表 public class Main { public int Id{get;set;} public string Name{get;set}; public virtual ICo ...

随机推荐

  1. 【转载】Mysql主从复制、和MySQL集群(主主复制)

    转载:https://www.cnblogs.com/phpstudy2015-6/p/6485819.html 请同时参考和结合这篇文件进行处理:https://blog.csdn.net/envo ...

  2. 简单原始的ASP.NET WEBFORM中多文件上传【参考其他资料修改】

    首先是ASPX页面中添加file标签 <input onclick="addFile()" type="button" value="增加&qu ...

  3. (转)IntelliJ IDEA java项目导入jar包,打jar包

    以下为转载原文:https://www.cnblogs.com/yulia/p/6824058.html 一.导入 1.java项目在没有导入该jar包之前,如图: 2.点击 File ->   ...

  4. git的几个操作

    git reference https://git-scm.com/docs 克隆 从远程仓库克隆一个项目到本地文件夹,命令如下:$ git clone https://github.com/libg ...

  5. 进阶之路(基础篇) - 003 I/O的模拟的读取

    /********************************* 代码功能:读取某引脚的模拟量串口返回数据 使用函数: analogRead(引脚号); //调用10位AD 创作时间:2016*1 ...

  6. nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)

    俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经 ...

  7. Android上实现MVP模式的途径

    今天我想分享我在Android上实现MVP(Model-View-Presenter)模式的方法.如果你对MVP模式还不熟悉,或者不了解为什么要在Android应用中使用MVP模式,推荐你先阅读这篇维 ...

  8. 基于matplotlib的数据可视化 - 笔记

    1 基本绘图 在plot()函数中只有x,y两个量时. import numpy as np import matplotlib.pyplot as plt # 生成曲线上各个点的x,y坐标,然后用一 ...

  9. Oracle 12C -- 预定义audit policies

    在12C中,预定义了三种审计策略:ora_secureconfig,ora_database_parameter,ora_account_mgmt可以通过脚本$ORACLE_HOME/rdbms/ad ...

  10. ERROR: No query specified

    mysql中执行show命令的时候,提示以下信息: mysql> show variables like 'datadir'\G; *************************** 1. ...