MySQL中的数据类型和schema优化1. 选择优化的数据类型2. 范式和反范式4. 缓存表和汇总表5. 加快ALTER TABLE操作的速度 您所在的位置:网站首页 schema数据类型 MySQL中的数据类型和schema优化1. 选择优化的数据类型2. 范式和反范式4. 缓存表和汇总表5. 加快ALTER TABLE操作的速度

MySQL中的数据类型和schema优化1. 选择优化的数据类型2. 范式和反范式4. 缓存表和汇总表5. 加快ALTER TABLE操作的速度

#MySQL中的数据类型和schema优化1. 选择优化的数据类型2. 范式和反范式4. 缓存表和汇总表5. 加快ALTER TABLE操作的速度| 来源: 网络整理| 查看: 265

最近在学习MysqL优化方面的知识。Mysql教程栏目就数据类型和schema方面的优化进行介绍。

1. 选择优化的数据类型

MysqL支持的数据类型有很多,而如何选择出正确的数据类型,对于性能是至关重要的。以下几个原则能够帮助确定数据类型:

更小的通常更好

应尽可能使用可以正确存储数据的最小数据类型,够用就好。这样将占用更少的磁盘、内存和缓存,而在处理时也会耗时更少。

简单就好

当两种数据类型都能胜任一个字段的存储工作时,选择简单的那一方,往往是最好的选择。例如整型和字符串,由于整型的操作代价要小于字符,所以当在两者之间选择时,选择整型通常能够获得更好的性能。

尽量避免NulL

当列可为NulL时,对于MysqL来说,在索引和值比较等方面需要做更多的工作,虽然对性能的影响不是很大,但也应尽量避免设计为可为NulL。

除了以上原则,在选择数据类型时,需遵循的步骤:首先确定合适的大类型,例如数据、字符串、时间等;然后再选择具体的类型。下面将讨论大类型下的一些具体类型,首先是数字,有两种类型:整数和实数。

1.1 整数类型

整数类型和所占用的空间如下:

整数类型空间大小(bit)tinyint8SMALliNT16MEDIUMINT24INT32BIGINT64

整数类型所能存储的范围和空间大小有关:-2^(N-1)至2^(N-1)-1,其中N为空间大小的位数。

整数类型具有UNSIGNED的可选属性,当声明时,表示不允许负数,则存储范围变为:0至2^(N)-1,扩大了一倍。

在MysqL中,还可以为整数类型指定宽度,例如INT(1),但这样的意义并不大,并不会限制值的合法范围,仍能存储-2^31至2^31-1的值,所影响的是与MysqL的交互工具显示字符的个数。

1.2 实数类型

实数类型的对比如下:

实数类型空间大小(Byte)取值范围计算精度float4负数:-3.4E+38~-1.17E-38;非负数:0、1.17E-38~3.4E+38近似计算DOUBLE8负数:-1.79E+308~-2.22E-308;非负数:0、2.22E-308~1.79E+308近似计算DECIMAL与精度有关同DOUBLE精确计算

从上面可以看出,float和DOUBLE都有固定的空间大小,但同时由于是使用标准的浮点运算,所以只能近似计算。而DECIMAL则可以实现精确计算,与此同时占用的空间会相较更大,所耗费的计算开销也更多。

DECIMAL所占空间大小与指定的精度有关,例如DECIMAL(M,D):

M为整个数字的最大长度,取值范围为[1, 65],默认值为10;D为小数点后的长度,取值范围为[0, 30],且D


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有