zoukankan      html  css  js  c++  java
  • 数据库基础03-优化数据库性能,从选择合理的数据类型开始

    Mysql中常见的数据类型

         选择恰当的数据类型,对于MYSQL服务器的性能影响至关重要,在建表根据自己的业务逻辑选择恰当的数据类型和数据长度,也是我们MYSQL查询优化的一种重要方式;

    参考书籍:《高性能MYSQL》

    数据类型选择的

    1.数据类型选择遵守的原则

    • 更小的通常更好(在正常存储数据的情况下,最小数据类型最好,可以提高性能)
    • 尽量避免null

    基础知识点

    1.不同编码类型,存储数据的大小不一致。utf-8, 一个汉字3字节 英文字母1字节;
    2.GBK存储,1个汉字2个字节,英文字母1个字节;
    

    2.数字类型

    1.整数类型

    存储的值的范围在-2(n-1)到2(n-1)-1,其中n是存储空间的维数

    类型 大小 特点 备注
    unsigned 表示无符号的,表示不允许负值,可以让正数的大小扩大一倍
    Zerofill 标记 Int(4) zerofill显示时不足4位会补0
    tinyint 1字节,8位,大小在-128~127 tinyint unsigned 大小编程了 0~255
    smallint 2字节,16位
    mediumint 3字节,24位
    int 4字节,32位
    bigint 8字节,64位

    2.实数类型

    一般用域存储带小数点的。可以分为精确类型和不精确类型。
    浮点类型

    类型 大小 特点 备注
    FLOAT 4字节
    dobule 8字节

    精确类型

    类型 大小 特点 备注
    decimal 定点浮点型做精确运算
    nemeric

    3. 字符串类型

    分配的长度过多,会造成排序操作的性能损失

    类型 大小 特点 备注
    varchar 大小为64k,即65535个字节,而varchar要用1-2字节来存储字段长度,小于255的1字节,大于255的2字节 1.括号中给定的是最大长度
    2.变长字符串,用于存储可变的长字符串,比定长更胜空间
    3.容易产生碎片
    具体和存储引擎有关
    char 最长不超过255个字节 1.定长字符串;
    2.效率更高;
    3.如果长度不足会补空格;
    4.比较适合用来存储密码之类;
    可以用来存储是非性别值,因为只需要1个字节,varchar还需要额外的1个字节记录长度
    text 65535字节 保存字符串
    有字符集和排序规则
    mysql无法对全部长度的字符串索引
    blob 用来保存二进制字节数据 mysql无法对全部长度的字符串索引

    4. 日期和时间类型

    类型 大小 特点 备注
    DATETIME 包含最大范围的值,从1001-9999年,精度位秒 1.将日期封装进YYYYMMDDHHMMSS的正数据中,与时区无关,8个字节存储
    TIMESTAMP 从1970年1月1日开始到2038年 1.修改一行数据时,第一个timestamp字段会自动更新为系统当前时间
    2.不能取null值,填入null值时,就会自动填入当前系统时间;
    3.空间效率更高

    5.其他类型

    位数据类型和选择标识符类型没用的比较少,大概了解一下;具体可以看《高性能MYSQL》相关章节知识

  • 相关阅读:
    CefSharp.v49.0.1浏览器控件完全WPF版,实现禁止弹出新窗口,在同一窗口打开链接,并且支持带type="POST" target="_blank"的链接
    C#动态调用WebService
    WPF实现窗体中的悬浮按钮
    Oracle树结构查询按层级排序
    WPF自定义TabControl样式
    WPF自定义Window窗体样式
    C# 实现图片压缩
    C# 图片反色处理 图片夜间模式
    C#中多线程中变量研究
    EasyNetQ操作RabbitMQ(高级消息队列)
  • 原文地址:https://www.cnblogs.com/perferect/p/13101928.html
Copyright © 2011-2022 走看看