您当前的位置: 首页 >  sql

wu@55555

暂无认证

  • 2浏览

    0关注

    201博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【mysql进阶】10种数据类型的区别以及如何优化表结构(三)

wu@55555 发布时间:2022-06-11 00:37:41 ,浏览量:2

文章目录
  • 0.引言
  • 1. 数据类型的优化
    • 1.1 mysql的数据类型
      • 1.1.1 整数类型
      • 1.1.2 浮点数类型
      • 1.1.3 位类型
      • 1.1.4 日期类型*
      • 1.1.5 字符类型*
      • 1.1.6 二进制字符串类型
      • 1.1.7 枚举类型*
      • 1.1.8 集合类型
      • 1.1.9 JSON类型
      • 1.1.10 空间数据类型
    • 1.2 数据类型优化原则
      • 1.2.1 越小越好
      • 1.2.2 越简单越好
      • 1.2.3 避免为空
  • 2. 表结构优化原则
    • 2.1 适当的数据冗余
    • 2.2 适当的拆分
    • 2.3 选择合适的字符集
    • 2.4 主键选择
  • 总结

0.引言

一个优秀的开发者在于性能的提升和资源的节约上是会不断追求,不断打磨的,我们在使用mysql时创建表结构时,更是需要我们理解每一种数据类型的区别,并且在不同的业务场景中选择适合的数据类型。

那么我们今天就来谈谈如何来优化表结构

1. 数据类型的优化

字段是组成表结构的基础,而针对数据类型做好优化,更是表结构优化的第一步。所以我们先来看如何对数据类型做好选型与优化。

1.1 mysql的数据类型

首先我们要知道mysql支持哪些数据类型,这些数据类型之间的区别是是什么,然后我们才能针对不同的场景选择不同的类型。

mysql中一共支持10种数据类型

1.1.1 整数类型

整数类型分为以下5种

数据类型大小范围tinyint1字节-128~127smallint2字节-32768~32767mediumint3字节-8388608~8388607int4字节-2147483648~2147483647bigint8字节-9.22*10^18~9.22*10^18

通过上述我们知道tinyint是在所有整型中占用空间最小的,我们常常看到会用int(n)等形式来表示数据类型,其中的n的含义是该数据类型能够展现的最大宽度,比如10的宽度就是2,100的宽度就是3,n与数据的存储大小不相关,也就是说int(1)与int(11)所占用的空间都是4字节

1.1.2 浮点数类型

mysql中浮点类型有以下3种

数据类型大小float4字节double8字节decimal (m,n)取决于m,n

decimal的大小取决于m,n的值,m表示整个数值的数字长度,n表示小数部分的数字长度,默认4个字节可以存储9个数字,小数点占1个字节,不满9个数字时占用大小如下所示

数字个数大小1,21字节3,42字节5,63字节7,84字节

举个例子:decimal(19,4),19/9=2…1,2*4=8字节,1个数字占1字节,再加上小数点1字节,所以总共占8+1+1=10字节

需要注意的是:mysql规定m

关注
打赏
1664985904
查看更多评论
立即登录/注册

微信扫码登录

0.0461s