MySQL数据类型及使用优化-复习笔记

** 原文链接 **

本文除了整理常用类型外,还整理了针对不用类型的使用技巧和注意细节,并给出提升查询效率的一些意见

整数类型

  • TINYINT: 8位
  • SMALLINT: 16位
  • MEDIUMINT: 24位
  • INT: 32位
  • BIGINT: 64位

整数类型有一个UNSIGNED属性,标识无符或者有符。比如对于TINYINT,存储范围上,无符0-255,有符则是-128-127。无符号和有符号类型使用相同的存储空间,具有相同的性能。

问题: INT(11)表示的是11位存储么?
这个对于大多数应用是没有用的,它只能限制客户端用来显示字符的个数,实际的存储还是32位。

实数类型

MySQL支持精确类型和不精确类型。

FLOAT和DOUBLE支持使用标准的浮点运算进行近似计算。
DECIMAL用于存储精确的小数,允许小说点两边最多65个数字。

CPU不支持对DECIMAL的直接计算但是迟迟浮点计算,MySQL则自己实现了DECIMAL的计算,换句话说,浮点计算要比精确计算快。

另外浮点类型在存储同样范围的值时,要比DECIMAL使用更少的空间。因为需要额外的空间和计算开销,应尽量避免使用精确的DECIMAL,除非不可避免。可以考虑使用int来代替DECIMAL,只需要扩大响应的倍数即可。

字符串类型

varchar 和 char

...

** 原创不易完整内容请看原文 **

你可能感兴趣的:(MySQL数据类型及使用优化-复习笔记)